merge 5.1 --> 5.1-rpl
This commit is contained in:
commit
19f859a27e
25
.bzrignore
25
.bzrignore
@ -3036,3 +3036,28 @@ mysql-test/bug36522.tar
|
|||||||
mysql-test/t.log
|
mysql-test/t.log
|
||||||
mysql-test/tps.log
|
mysql-test/tps.log
|
||||||
libmysqld/event_parse_data.cc
|
libmysqld/event_parse_data.cc
|
||||||
|
autom4te.cache
|
||||||
|
sql/share/czech
|
||||||
|
sql/share/danish
|
||||||
|
sql/share/dutch
|
||||||
|
sql/share/english
|
||||||
|
sql/share/estonian
|
||||||
|
sql/share/french
|
||||||
|
sql/share/german
|
||||||
|
sql/share/greek
|
||||||
|
sql/share/hungarian
|
||||||
|
sql/share/italian
|
||||||
|
sql/share/japanese
|
||||||
|
sql/share/japanese-sjis
|
||||||
|
sql/share/korean
|
||||||
|
sql/share/norwegian
|
||||||
|
sql/share/norwegian-ny
|
||||||
|
sql/share/polish
|
||||||
|
sql/share/portuguese
|
||||||
|
sql/share/romanian
|
||||||
|
sql/share/russian
|
||||||
|
sql/share/serbian
|
||||||
|
sql/share/slovak
|
||||||
|
sql/share/spanish
|
||||||
|
sql/share/swedish
|
||||||
|
sql/share/ukrainian
|
||||||
|
@ -1627,8 +1627,10 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||||||
opt_nopager= 1;
|
opt_nopager= 1;
|
||||||
break;
|
break;
|
||||||
case OPT_MYSQL_PROTOCOL:
|
case OPT_MYSQL_PROTOCOL:
|
||||||
|
#ifndef EMBEDDED_LIBRARY
|
||||||
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib,
|
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib,
|
||||||
opt->name);
|
opt->name);
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
case OPT_SERVER_ARG:
|
case OPT_SERVER_ARG:
|
||||||
#ifdef EMBEDDED_LIBRARY
|
#ifdef EMBEDDED_LIBRARY
|
||||||
|
@ -517,9 +517,14 @@ static int process_all_tables_in_db(char *database)
|
|||||||
LINT_INIT(res);
|
LINT_INIT(res);
|
||||||
if (use_db(database))
|
if (use_db(database))
|
||||||
return 1;
|
return 1;
|
||||||
if (mysql_query(sock, "SHOW /*!50002 FULL*/ TABLES") ||
|
if ((mysql_query(sock, "SHOW /*!50002 FULL*/ TABLES") &&
|
||||||
!((res= mysql_store_result(sock))))
|
mysql_query(sock, "SHOW TABLES")) ||
|
||||||
|
!(res= mysql_store_result(sock)))
|
||||||
|
{
|
||||||
|
my_printf_error(0, "Error: Couldn't get table list for database %s: %s",
|
||||||
|
MYF(0), database, mysql_error(sock));
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
num_columns= mysql_num_fields(res);
|
num_columns= mysql_num_fields(res);
|
||||||
|
|
||||||
|
@ -1851,13 +1851,7 @@ static void DBUGOpenFile(CODE_STATE *cs,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
newfile= !EXISTS(name);
|
newfile= !EXISTS(name);
|
||||||
if (!(fp= fopen(name,
|
if (!(fp= fopen(name, append ? "a+" : "w")))
|
||||||
#if defined(MSDOS) || defined(__WIN__)
|
|
||||||
append ? "a+c" : "wc"
|
|
||||||
#else
|
|
||||||
append ? "a+" : "w"
|
|
||||||
#endif
|
|
||||||
)))
|
|
||||||
{
|
{
|
||||||
(void) fprintf(stderr, ERR_OPEN, cs->process, name);
|
(void) fprintf(stderr, ERR_OPEN, cs->process, name);
|
||||||
perror("");
|
perror("");
|
||||||
|
@ -185,11 +185,36 @@ static const char *get_ha_error_msg(int code)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__WIN__)
|
||||||
|
static my_bool print_win_error_msg(DWORD error, my_bool verbose)
|
||||||
|
{
|
||||||
|
LPTSTR s;
|
||||||
|
if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
||||||
|
FORMAT_MESSAGE_FROM_SYSTEM,
|
||||||
|
NULL, error, 0, (LPTSTR)&s, 0,
|
||||||
|
NULL))
|
||||||
|
{
|
||||||
|
if (verbose)
|
||||||
|
printf("Win32 error code %d: %s", error, s);
|
||||||
|
else
|
||||||
|
puts(s);
|
||||||
|
LocalFree(s);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc,char *argv[])
|
int main(int argc,char *argv[])
|
||||||
{
|
{
|
||||||
int error,code,found;
|
int error,code,found;
|
||||||
const char *msg;
|
const char *msg;
|
||||||
char *unknown_error = 0;
|
char *unknown_error = 0;
|
||||||
|
#if defined(__WIN__)
|
||||||
|
my_bool skip_win_message= 0;
|
||||||
|
#endif
|
||||||
MY_INIT(argv[0]);
|
MY_INIT(argv[0]);
|
||||||
|
|
||||||
if (get_options(&argc,&argv))
|
if (get_options(&argc,&argv))
|
||||||
@ -293,9 +318,20 @@ int main(int argc,char *argv[])
|
|||||||
}
|
}
|
||||||
if (!found)
|
if (!found)
|
||||||
{
|
{
|
||||||
fprintf(stderr,"Illegal error code: %d\n", code);
|
#if defined(__WIN__)
|
||||||
error= 1;
|
if (!(skip_win_message= !print_win_error_msg((DWORD)code, verbose)))
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
fprintf(stderr,"Illegal error code: %d\n",code);
|
||||||
|
error=1;
|
||||||
|
#if defined(__WIN__)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
#if defined(__WIN__)
|
||||||
|
if (!skip_win_message)
|
||||||
|
print_win_error_msg((DWORD)code, verbose);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "yassl_types.hpp" // SignatureAlgorithm
|
#include "yassl_types.hpp" // SignatureAlgorithm
|
||||||
#include "buffer.hpp" // input_buffer
|
#include "buffer.hpp" // input_buffer
|
||||||
#include "asn.hpp" // SignerList
|
#include "asn.hpp" // SignerList
|
||||||
|
#include "openssl/ssl.h" // internal and external use
|
||||||
#include STL_LIST_FILE
|
#include STL_LIST_FILE
|
||||||
#include STL_ALGORITHM_FILE
|
#include STL_ALGORITHM_FILE
|
||||||
|
|
||||||
@ -87,6 +88,7 @@ class CertManager {
|
|||||||
bool verifyNone_; // no error if verify fails
|
bool verifyNone_; // no error if verify fails
|
||||||
bool failNoCert_;
|
bool failNoCert_;
|
||||||
bool sendVerify_;
|
bool sendVerify_;
|
||||||
|
VerifyCallback verifyCallback_; // user verify callback
|
||||||
public:
|
public:
|
||||||
CertManager();
|
CertManager();
|
||||||
~CertManager();
|
~CertManager();
|
||||||
@ -118,6 +120,7 @@ public:
|
|||||||
void setFailNoCert();
|
void setFailNoCert();
|
||||||
void setSendVerify();
|
void setSendVerify();
|
||||||
void setPeerX509(X509*);
|
void setPeerX509(X509*);
|
||||||
|
void setVerifyCallback(VerifyCallback);
|
||||||
private:
|
private:
|
||||||
CertManager(const CertManager&); // hide copy
|
CertManager(const CertManager&); // hide copy
|
||||||
CertManager& operator=(const CertManager&); // and assign
|
CertManager& operator=(const CertManager&); // and assign
|
||||||
|
@ -52,6 +52,7 @@
|
|||||||
#define SSL_load_error_strings yaSSL_load_error_strings
|
#define SSL_load_error_strings yaSSL_load_error_strings
|
||||||
#define SSL_set_session yaSSL_set_session
|
#define SSL_set_session yaSSL_set_session
|
||||||
#define SSL_get_session yaSSL_get_session
|
#define SSL_get_session yaSSL_get_session
|
||||||
|
#define SSL_flush_sessions yaSSL_flush_sessions
|
||||||
#define SSL_SESSION_set_timeout yaSSL_SESSION_set_timeout
|
#define SSL_SESSION_set_timeout yaSSL_SESSION_set_timeout
|
||||||
#define SSL_CTX_set_session_cache_mode yaSSL_CTX_set_session_cache_mode
|
#define SSL_CTX_set_session_cache_mode yaSSL_CTX_set_session_cache_mode
|
||||||
#define SSL_get_peer_certificate yaSSL_get_peer_certificate
|
#define SSL_get_peer_certificate yaSSL_get_peer_certificate
|
||||||
|
@ -170,8 +170,9 @@ enum { /* X509 Constants */
|
|||||||
X509_V_ERR_CRL_SIGNATURE_FAILURE = 10,
|
X509_V_ERR_CRL_SIGNATURE_FAILURE = 10,
|
||||||
X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 11,
|
X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 11,
|
||||||
X509_V_ERR_CRL_HAS_EXPIRED = 12,
|
X509_V_ERR_CRL_HAS_EXPIRED = 12,
|
||||||
X509_V_ERR_CERT_REVOKED = 13
|
X509_V_ERR_CERT_REVOKED = 13,
|
||||||
|
X509_V_FLAG_CRL_CHECK = 14,
|
||||||
|
X509_V_FLAG_CRL_CHECK_ALL = 15
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -202,7 +203,8 @@ SSL_CTX* SSL_CTX_new(SSL_METHOD*);
|
|||||||
SSL* SSL_new(SSL_CTX*);
|
SSL* SSL_new(SSL_CTX*);
|
||||||
int SSL_set_fd (SSL*, YASSL_SOCKET_T);
|
int SSL_set_fd (SSL*, YASSL_SOCKET_T);
|
||||||
YASSL_SOCKET_T SSL_get_fd(const SSL*);
|
YASSL_SOCKET_T SSL_get_fd(const SSL*);
|
||||||
int SSL_connect(SSL*);
|
int SSL_connect(SSL*); // if you get an error from connect
|
||||||
|
// see note at top of REAMDE
|
||||||
int SSL_write(SSL*, const void*, int);
|
int SSL_write(SSL*, const void*, int);
|
||||||
int SSL_read(SSL*, void*, int);
|
int SSL_read(SSL*, void*, int);
|
||||||
int SSL_accept(SSL*);
|
int SSL_accept(SSL*);
|
||||||
@ -227,6 +229,7 @@ void SSL_load_error_strings(void);
|
|||||||
|
|
||||||
int SSL_set_session(SSL *ssl, SSL_SESSION *session);
|
int SSL_set_session(SSL *ssl, SSL_SESSION *session);
|
||||||
SSL_SESSION* SSL_get_session(SSL* ssl);
|
SSL_SESSION* SSL_get_session(SSL* ssl);
|
||||||
|
void SSL_flush_sessions(SSL_CTX *ctx, long tm);
|
||||||
long SSL_SESSION_set_timeout(SSL_SESSION*, long);
|
long SSL_SESSION_set_timeout(SSL_SESSION*, long);
|
||||||
long SSL_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode);
|
long SSL_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode);
|
||||||
X509* SSL_get_peer_certificate(SSL*);
|
X509* SSL_get_peer_certificate(SSL*);
|
||||||
|
@ -667,10 +667,12 @@ struct Parameters {
|
|||||||
Cipher suites_[MAX_SUITE_SZ];
|
Cipher suites_[MAX_SUITE_SZ];
|
||||||
char cipher_name_[MAX_SUITE_NAME];
|
char cipher_name_[MAX_SUITE_NAME];
|
||||||
char cipher_list_[MAX_CIPHERS][MAX_SUITE_NAME];
|
char cipher_list_[MAX_CIPHERS][MAX_SUITE_NAME];
|
||||||
|
bool removeDH_; // for server's later use
|
||||||
|
|
||||||
Parameters(ConnectionEnd, const Ciphers&, ProtocolVersion, bool haveDH);
|
Parameters(ConnectionEnd, const Ciphers&, ProtocolVersion, bool haveDH);
|
||||||
|
|
||||||
void SetSuites(ProtocolVersion pv, bool removeDH = false);
|
void SetSuites(ProtocolVersion pv, bool removeDH = false,
|
||||||
|
bool removeRSA = false, bool removeDSA = false);
|
||||||
void SetCipherNames();
|
void SetCipherNames();
|
||||||
private:
|
private:
|
||||||
Parameters(const Parameters&); // hide copy
|
Parameters(const Parameters&); // hide copy
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (C) 2000-2007 MySQL AB
|
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -268,12 +268,14 @@ class Sessions {
|
|||||||
STL::list<SSL_SESSION*> list_;
|
STL::list<SSL_SESSION*> list_;
|
||||||
RandomPool random_; // for session cleaning
|
RandomPool random_; // for session cleaning
|
||||||
Mutex mutex_; // no-op for single threaded
|
Mutex mutex_; // no-op for single threaded
|
||||||
|
int count_; // flush counter
|
||||||
|
|
||||||
Sessions() {} // only GetSessions can create
|
Sessions() : count_(0) {} // only GetSessions can create
|
||||||
public:
|
public:
|
||||||
SSL_SESSION* lookup(const opaque*, SSL_SESSION* copy = 0);
|
SSL_SESSION* lookup(const opaque*, SSL_SESSION* copy = 0);
|
||||||
void add(const SSL&);
|
void add(const SSL&);
|
||||||
void remove(const opaque*);
|
void remove(const opaque*);
|
||||||
|
void Flush();
|
||||||
|
|
||||||
~Sessions();
|
~Sessions();
|
||||||
|
|
||||||
@ -425,8 +427,10 @@ private:
|
|||||||
pem_password_cb passwordCb_;
|
pem_password_cb passwordCb_;
|
||||||
void* userData_;
|
void* userData_;
|
||||||
bool sessionCacheOff_;
|
bool sessionCacheOff_;
|
||||||
|
bool sessionCacheFlushOff_;
|
||||||
Stats stats_;
|
Stats stats_;
|
||||||
Mutex mutex_; // for Stats
|
Mutex mutex_; // for Stats
|
||||||
|
VerifyCallback verifyCallback_;
|
||||||
public:
|
public:
|
||||||
explicit SSL_CTX(SSL_METHOD* meth);
|
explicit SSL_CTX(SSL_METHOD* meth);
|
||||||
~SSL_CTX();
|
~SSL_CTX();
|
||||||
@ -437,18 +441,22 @@ public:
|
|||||||
const Ciphers& GetCiphers() const;
|
const Ciphers& GetCiphers() const;
|
||||||
const DH_Parms& GetDH_Parms() const;
|
const DH_Parms& GetDH_Parms() const;
|
||||||
const Stats& GetStats() const;
|
const Stats& GetStats() const;
|
||||||
|
const VerifyCallback getVerifyCallback() const;
|
||||||
pem_password_cb GetPasswordCb() const;
|
pem_password_cb GetPasswordCb() const;
|
||||||
void* GetUserData() const;
|
void* GetUserData() const;
|
||||||
bool GetSessionCacheOff() const;
|
bool GetSessionCacheOff() const;
|
||||||
|
bool GetSessionCacheFlushOff() const;
|
||||||
|
|
||||||
void setVerifyPeer();
|
void setVerifyPeer();
|
||||||
void setVerifyNone();
|
void setVerifyNone();
|
||||||
void setFailNoCert();
|
void setFailNoCert();
|
||||||
|
void setVerifyCallback(VerifyCallback);
|
||||||
bool SetCipherList(const char*);
|
bool SetCipherList(const char*);
|
||||||
bool SetDH(const DH&);
|
bool SetDH(const DH&);
|
||||||
void SetPasswordCb(pem_password_cb cb);
|
void SetPasswordCb(pem_password_cb cb);
|
||||||
void SetUserData(void*);
|
void SetUserData(void*);
|
||||||
void SetSessionCacheOff();
|
void SetSessionCacheOff();
|
||||||
|
void SetSessionCacheFlushOff();
|
||||||
|
|
||||||
void IncrementStats(StatsField);
|
void IncrementStats(StatsField);
|
||||||
void AddCA(x509* ca);
|
void AddCA(x509* ca);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (C) 2000-2007 MySQL AB
|
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -29,6 +29,13 @@
|
|||||||
#include "type_traits.hpp"
|
#include "type_traits.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
// disable conversion warning
|
||||||
|
// 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
|
||||||
|
#pragma warning(disable:4244 4996)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
namespace yaSSL {
|
namespace yaSSL {
|
||||||
|
|
||||||
#define YASSL_LIB
|
#define YASSL_LIB
|
||||||
@ -163,7 +170,7 @@ const int RMD_LEN = 20; // RIPEMD-160 digest length
|
|||||||
const int PREFIX = 3; // up to 3 prefix letters for secret rounds
|
const int PREFIX = 3; // up to 3 prefix letters for secret rounds
|
||||||
const int KEY_PREFIX = 7; // up to 7 prefix letters for key rounds
|
const int KEY_PREFIX = 7; // up to 7 prefix letters for key rounds
|
||||||
const int FORTEZZA_MAX = 128; // Maximum Fortezza Key length
|
const int FORTEZZA_MAX = 128; // Maximum Fortezza Key length
|
||||||
const int MAX_SUITE_SZ = 64; // 32 max suites * sizeof(suite)
|
const int MAX_SUITE_SZ = 128; // 64 max suites * sizeof(suite)
|
||||||
const int MAX_SUITE_NAME = 48; // max length of suite name
|
const int MAX_SUITE_NAME = 48; // max length of suite name
|
||||||
const int MAX_CIPHERS = 32; // max supported ciphers for cipher list
|
const int MAX_CIPHERS = 32; // max supported ciphers for cipher list
|
||||||
const int SIZEOF_ENUM = 1; // SSL considers an enum 1 byte, not 4
|
const int SIZEOF_ENUM = 1; // SSL considers an enum 1 byte, not 4
|
||||||
@ -205,6 +212,7 @@ const int SEED_LEN = RAN_LEN * 2; // TLS seed, client + server random
|
|||||||
const int DEFAULT_TIMEOUT = 500; // Default Session timeout in seconds
|
const int DEFAULT_TIMEOUT = 500; // Default Session timeout in seconds
|
||||||
const int MAX_RECORD_SIZE = 16384; // 2^14, max size by standard
|
const int MAX_RECORD_SIZE = 16384; // 2^14, max size by standard
|
||||||
const int COMPRESS_EXTRA = 1024; // extra compression possible addition
|
const int COMPRESS_EXTRA = 1024; // extra compression possible addition
|
||||||
|
const int SESSION_FLUSH_COUNT = 256; // when to flush session cache
|
||||||
|
|
||||||
|
|
||||||
typedef uint8 Cipher; // first byte is always 0x00 for SSLv3 & TLS
|
typedef uint8 Cipher; // first byte is always 0x00 for SSLv3 & TLS
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (C) 2000-2007 MySQL AB
|
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -24,6 +24,7 @@
|
|||||||
#include "runtime.hpp"
|
#include "runtime.hpp"
|
||||||
#include "cert_wrapper.hpp"
|
#include "cert_wrapper.hpp"
|
||||||
#include "yassl_int.hpp"
|
#include "yassl_int.hpp"
|
||||||
|
#include "error.hpp"
|
||||||
|
|
||||||
#if defined(USE_CML_LIB)
|
#if defined(USE_CML_LIB)
|
||||||
#include "cmapi_cpp.h"
|
#include "cmapi_cpp.h"
|
||||||
@ -90,7 +91,7 @@ opaque* x509::use_buffer()
|
|||||||
//CertManager
|
//CertManager
|
||||||
CertManager::CertManager()
|
CertManager::CertManager()
|
||||||
: peerX509_(0), verifyPeer_(false), verifyNone_(false), failNoCert_(false),
|
: peerX509_(0), verifyPeer_(false), verifyNone_(false), failNoCert_(false),
|
||||||
sendVerify_(false)
|
sendVerify_(false), verifyCallback_(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -154,6 +155,12 @@ void CertManager::setSendVerify()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CertManager::setVerifyCallback(VerifyCallback vc)
|
||||||
|
{
|
||||||
|
verifyCallback_ = vc;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void CertManager::AddPeerCert(x509* x)
|
void CertManager::AddPeerCert(x509* x)
|
||||||
{
|
{
|
||||||
peerList_.push_back(x); // take ownership
|
peerList_.push_back(x); // take ownership
|
||||||
@ -236,7 +243,7 @@ uint CertManager::get_privateKeyLength() const
|
|||||||
int CertManager::Validate()
|
int CertManager::Validate()
|
||||||
{
|
{
|
||||||
CertList::reverse_iterator last = peerList_.rbegin();
|
CertList::reverse_iterator last = peerList_.rbegin();
|
||||||
int count = peerList_.size();
|
size_t count = peerList_.size();
|
||||||
|
|
||||||
while ( count > 1 ) {
|
while ( count > 1 ) {
|
||||||
TaoCrypt::Source source((*last)->get_buffer(), (*last)->get_length());
|
TaoCrypt::Source source((*last)->get_buffer(), (*last)->get_length());
|
||||||
@ -257,7 +264,8 @@ int CertManager::Validate()
|
|||||||
TaoCrypt::Source source((*last)->get_buffer(), (*last)->get_length());
|
TaoCrypt::Source source((*last)->get_buffer(), (*last)->get_length());
|
||||||
TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_);
|
TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_);
|
||||||
|
|
||||||
if (int err = cert.GetError().What())
|
int err = cert.GetError().What();
|
||||||
|
if ( err )
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
uint sz = cert.GetPublicKey().size();
|
uint sz = cert.GetPublicKey().size();
|
||||||
@ -269,13 +277,25 @@ int CertManager::Validate()
|
|||||||
else
|
else
|
||||||
peerKeyType_ = dsa_sa_algo;
|
peerKeyType_ = dsa_sa_algo;
|
||||||
|
|
||||||
int iSz = strlen(cert.GetIssuer()) + 1;
|
size_t iSz = strlen(cert.GetIssuer()) + 1;
|
||||||
int sSz = strlen(cert.GetCommonName()) + 1;
|
size_t sSz = strlen(cert.GetCommonName()) + 1;
|
||||||
int bSz = strlen(cert.GetBeforeDate()) + 1;
|
int bSz = (int)strlen(cert.GetBeforeDate()) + 1;
|
||||||
int aSz = strlen(cert.GetAfterDate()) + 1;
|
int aSz = (int)strlen(cert.GetAfterDate()) + 1;
|
||||||
peerX509_ = NEW_YS X509(cert.GetIssuer(), iSz, cert.GetCommonName(),
|
peerX509_ = NEW_YS X509(cert.GetIssuer(), iSz, cert.GetCommonName(),
|
||||||
sSz, cert.GetBeforeDate(), bSz,
|
sSz, cert.GetBeforeDate(), bSz,
|
||||||
cert.GetAfterDate(), aSz);
|
cert.GetAfterDate(), aSz);
|
||||||
|
|
||||||
|
if (err == TaoCrypt::SIG_OTHER_E && verifyCallback_) {
|
||||||
|
X509_STORE_CTX store;
|
||||||
|
store.error = err;
|
||||||
|
store.error_depth = static_cast<int>(count) - 1;
|
||||||
|
store.current_cert = peerX509_;
|
||||||
|
|
||||||
|
int ok = verifyCallback_(0, &store);
|
||||||
|
if (ok) return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (err == TaoCrypt::SIG_OTHER_E) return err;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (C) 2000-2007 MySQL AB
|
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -245,6 +245,7 @@ YASSL_SOCKET_T SSL_get_fd(const SSL* ssl)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// if you get an error from connect see note at top of README
|
||||||
int SSL_connect(SSL* ssl)
|
int SSL_connect(SSL* ssl)
|
||||||
{
|
{
|
||||||
if (ssl->GetError() == YasslError(SSL_ERROR_WANT_READ))
|
if (ssl->GetError() == YasslError(SSL_ERROR_WANT_READ))
|
||||||
@ -447,6 +448,9 @@ long SSL_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode)
|
|||||||
if (mode == SSL_SESS_CACHE_OFF)
|
if (mode == SSL_SESS_CACHE_OFF)
|
||||||
ctx->SetSessionCacheOff();
|
ctx->SetSessionCacheOff();
|
||||||
|
|
||||||
|
if (mode == SSL_SESS_CACHE_NO_AUTO_CLEAR)
|
||||||
|
ctx->SetSessionCacheFlushOff();
|
||||||
|
|
||||||
return SSL_SUCCESS;
|
return SSL_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -493,6 +497,15 @@ long SSL_get_default_timeout(SSL* /*ssl*/)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SSL_flush_sessions(SSL_CTX *ctx, long /* tm */)
|
||||||
|
{
|
||||||
|
if (ctx->GetSessionCacheOff())
|
||||||
|
return;
|
||||||
|
|
||||||
|
GetSessions().Flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const char* SSL_get_cipher_name(SSL* ssl)
|
const char* SSL_get_cipher_name(SSL* ssl)
|
||||||
{
|
{
|
||||||
return SSL_get_cipher(ssl);
|
return SSL_get_cipher(ssl);
|
||||||
@ -560,7 +573,7 @@ int SSL_get_error(SSL* ssl, int /*previous*/)
|
|||||||
only need to turn on for client, becuase server on by default if built in
|
only need to turn on for client, becuase server on by default if built in
|
||||||
but calling for server will tell you whether it's available or not
|
but calling for server will tell you whether it's available or not
|
||||||
*/
|
*/
|
||||||
int SSL_set_compression(SSL* ssl)
|
int SSL_set_compression(SSL* ssl) /* Chad didn't rename to ya~ because it is prob. bug. */
|
||||||
{
|
{
|
||||||
return ssl->SetCompression();
|
return ssl->SetCompression();
|
||||||
}
|
}
|
||||||
@ -604,7 +617,7 @@ char* X509_NAME_oneline(X509_NAME* name, char* buffer, int sz)
|
|||||||
{
|
{
|
||||||
if (!name->GetName()) return buffer;
|
if (!name->GetName()) return buffer;
|
||||||
|
|
||||||
int len = strlen(name->GetName()) + 1;
|
int len = (int)strlen(name->GetName()) + 1;
|
||||||
int copySz = min(len, sz);
|
int copySz = min(len, sz);
|
||||||
|
|
||||||
if (!buffer) {
|
if (!buffer) {
|
||||||
@ -693,7 +706,7 @@ int SSL_CTX_use_PrivateKey_file(SSL_CTX* ctx, const char* file, int format)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SSL_CTX_set_verify(SSL_CTX* ctx, int mode, VerifyCallback /*vc*/)
|
void SSL_CTX_set_verify(SSL_CTX* ctx, int mode, VerifyCallback vc)
|
||||||
{
|
{
|
||||||
if (mode & SSL_VERIFY_PEER)
|
if (mode & SSL_VERIFY_PEER)
|
||||||
ctx->setVerifyPeer();
|
ctx->setVerifyPeer();
|
||||||
@ -703,6 +716,8 @@ void SSL_CTX_set_verify(SSL_CTX* ctx, int mode, VerifyCallback /*vc*/)
|
|||||||
|
|
||||||
if (mode & SSL_VERIFY_FAIL_IF_NO_PEER_CERT)
|
if (mode & SSL_VERIFY_FAIL_IF_NO_PEER_CERT)
|
||||||
ctx->setFailNoCert();
|
ctx->setFailNoCert();
|
||||||
|
|
||||||
|
ctx->setVerifyCallback(vc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1450,6 +1465,8 @@ unsigned long err_helper(bool peek = false)
|
|||||||
default :
|
default :
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0; // shut up compiler
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (C) 2000-2007 MySQL AB
|
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -26,6 +26,11 @@
|
|||||||
#include "openssl/ssl.h" // SSL_ERROR_WANT_READ
|
#include "openssl/ssl.h" // SSL_ERROR_WANT_READ
|
||||||
#include <string.h> // strncpy
|
#include <string.h> // strncpy
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
// 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
|
||||||
|
#pragma warning(disable: 4996)
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace yaSSL {
|
namespace yaSSL {
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (C) 2000-2007 MySQL AB
|
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -136,9 +136,19 @@ void DH_Server::build(SSL& ssl)
|
|||||||
const CertManager& cert = ssl.getCrypto().get_certManager();
|
const CertManager& cert = ssl.getCrypto().get_certManager();
|
||||||
|
|
||||||
if (ssl.getSecurity().get_parms().sig_algo_ == rsa_sa_algo)
|
if (ssl.getSecurity().get_parms().sig_algo_ == rsa_sa_algo)
|
||||||
|
{
|
||||||
|
if (cert.get_keyType() != rsa_sa_algo) {
|
||||||
|
ssl.SetError(privateKey_error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
auth.reset(NEW_YS RSA(cert.get_privateKey(),
|
auth.reset(NEW_YS RSA(cert.get_privateKey(),
|
||||||
cert.get_privateKeyLength(), false));
|
cert.get_privateKeyLength(), false));
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
|
if (cert.get_keyType() != dsa_sa_algo) {
|
||||||
|
ssl.SetError(privateKey_error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
auth.reset(NEW_YS DSS(cert.get_privateKey(),
|
auth.reset(NEW_YS DSS(cert.get_privateKey(),
|
||||||
cert.get_privateKeyLength(), false));
|
cert.get_privateKeyLength(), false));
|
||||||
sigSz += DSS_ENCODED_EXTRA;
|
sigSz += DSS_ENCODED_EXTRA;
|
||||||
@ -436,18 +446,21 @@ Parameters::Parameters(ConnectionEnd ce, const Ciphers& ciphers,
|
|||||||
pending_ = true; // suite not set yet
|
pending_ = true; // suite not set yet
|
||||||
strncpy(cipher_name_, "NONE", 5);
|
strncpy(cipher_name_, "NONE", 5);
|
||||||
|
|
||||||
|
removeDH_ = !haveDH; // only use on server side for set suites
|
||||||
|
|
||||||
if (ciphers.setSuites_) { // use user set list
|
if (ciphers.setSuites_) { // use user set list
|
||||||
suites_size_ = ciphers.suiteSz_;
|
suites_size_ = ciphers.suiteSz_;
|
||||||
memcpy(suites_, ciphers.suites_, ciphers.suiteSz_);
|
memcpy(suites_, ciphers.suites_, ciphers.suiteSz_);
|
||||||
SetCipherNames();
|
SetCipherNames();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SetSuites(pv, ce == server_end && !haveDH); // defaults
|
SetSuites(pv, ce == server_end && removeDH_); // defaults
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Parameters::SetSuites(ProtocolVersion pv, bool removeDH)
|
void Parameters::SetSuites(ProtocolVersion pv, bool removeDH, bool removeRSA,
|
||||||
|
bool removeDSA)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
// available suites, best first
|
// available suites, best first
|
||||||
@ -456,67 +469,87 @@ void Parameters::SetSuites(ProtocolVersion pv, bool removeDH)
|
|||||||
|
|
||||||
if (isTLS(pv)) {
|
if (isTLS(pv)) {
|
||||||
if (!removeDH) {
|
if (!removeDH) {
|
||||||
suites_[i++] = 0x00;
|
if (!removeRSA) {
|
||||||
suites_[i++] = TLS_DHE_RSA_WITH_AES_256_CBC_SHA;
|
suites_[i++] = 0x00;
|
||||||
suites_[i++] = 0x00;
|
suites_[i++] = TLS_DHE_RSA_WITH_AES_256_CBC_SHA;
|
||||||
suites_[i++] = TLS_DHE_DSS_WITH_AES_256_CBC_SHA;
|
}
|
||||||
|
if (!removeDSA) {
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = TLS_DHE_DSS_WITH_AES_256_CBC_SHA;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
suites_[i++] = 0x00;
|
if (!removeRSA) {
|
||||||
suites_[i++] = TLS_RSA_WITH_AES_256_CBC_SHA;
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = TLS_RSA_WITH_AES_256_CBC_SHA;
|
||||||
if (!removeDH) {
|
|
||||||
suites_[i++] = 0x00;
|
|
||||||
suites_[i++] = TLS_DHE_RSA_WITH_AES_128_CBC_SHA;
|
|
||||||
suites_[i++] = 0x00;
|
|
||||||
suites_[i++] = TLS_DHE_DSS_WITH_AES_128_CBC_SHA;
|
|
||||||
}
|
}
|
||||||
suites_[i++] = 0x00;
|
|
||||||
suites_[i++] = TLS_RSA_WITH_AES_128_CBC_SHA;
|
|
||||||
|
|
||||||
suites_[i++] = 0x00;
|
|
||||||
suites_[i++] = TLS_RSA_WITH_AES_256_CBC_RMD160;
|
|
||||||
suites_[i++] = 0x00;
|
|
||||||
suites_[i++] = TLS_RSA_WITH_AES_128_CBC_RMD160;
|
|
||||||
suites_[i++] = 0x00;
|
|
||||||
suites_[i++] = TLS_RSA_WITH_3DES_EDE_CBC_RMD160;
|
|
||||||
|
|
||||||
if (!removeDH) {
|
if (!removeDH) {
|
||||||
suites_[i++] = 0x00;
|
if (!removeRSA) {
|
||||||
suites_[i++] = TLS_DHE_RSA_WITH_AES_256_CBC_RMD160;
|
suites_[i++] = 0x00;
|
||||||
suites_[i++] = 0x00;
|
suites_[i++] = TLS_DHE_RSA_WITH_AES_128_CBC_SHA;
|
||||||
suites_[i++] = TLS_DHE_RSA_WITH_AES_128_CBC_RMD160;
|
}
|
||||||
suites_[i++] = 0x00;
|
if (!removeDSA) {
|
||||||
suites_[i++] = TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160;
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = TLS_DHE_DSS_WITH_AES_128_CBC_SHA;
|
||||||
suites_[i++] = 0x00;
|
}
|
||||||
suites_[i++] = TLS_DHE_DSS_WITH_AES_256_CBC_RMD160;
|
}
|
||||||
suites_[i++] = 0x00;
|
if (!removeRSA) {
|
||||||
suites_[i++] = TLS_DHE_DSS_WITH_AES_128_CBC_RMD160;
|
suites_[i++] = 0x00;
|
||||||
suites_[i++] = 0x00;
|
suites_[i++] = TLS_RSA_WITH_AES_128_CBC_SHA;
|
||||||
suites_[i++] = TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160;
|
suites_[i++] = 0x00;
|
||||||
}
|
suites_[i++] = TLS_RSA_WITH_AES_256_CBC_RMD160;
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = TLS_RSA_WITH_AES_128_CBC_RMD160;
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = TLS_RSA_WITH_3DES_EDE_CBC_RMD160;
|
||||||
|
}
|
||||||
|
if (!removeDH) {
|
||||||
|
if (!removeRSA) {
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = TLS_DHE_RSA_WITH_AES_256_CBC_RMD160;
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = TLS_DHE_RSA_WITH_AES_128_CBC_RMD160;
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160;
|
||||||
|
}
|
||||||
|
if (!removeDSA) {
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = TLS_DHE_DSS_WITH_AES_256_CBC_RMD160;
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = TLS_DHE_DSS_WITH_AES_128_CBC_RMD160;
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suites_[i++] = 0x00;
|
if (!removeRSA) {
|
||||||
suites_[i++] = SSL_RSA_WITH_RC4_128_SHA;
|
suites_[i++] = 0x00;
|
||||||
suites_[i++] = 0x00;
|
suites_[i++] = SSL_RSA_WITH_RC4_128_SHA;
|
||||||
suites_[i++] = SSL_RSA_WITH_RC4_128_MD5;
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = SSL_RSA_WITH_RC4_128_MD5;
|
||||||
suites_[i++] = 0x00;
|
|
||||||
suites_[i++] = SSL_RSA_WITH_3DES_EDE_CBC_SHA;
|
|
||||||
suites_[i++] = 0x00;
|
|
||||||
suites_[i++] = SSL_RSA_WITH_DES_CBC_SHA;
|
|
||||||
|
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = SSL_RSA_WITH_3DES_EDE_CBC_SHA;
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = SSL_RSA_WITH_DES_CBC_SHA;
|
||||||
|
}
|
||||||
if (!removeDH) {
|
if (!removeDH) {
|
||||||
suites_[i++] = 0x00;
|
if (!removeRSA) {
|
||||||
suites_[i++] = SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA;
|
suites_[i++] = 0x00;
|
||||||
suites_[i++] = 0x00;
|
suites_[i++] = SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA;
|
||||||
suites_[i++] = SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA;
|
}
|
||||||
|
if (!removeDSA) {
|
||||||
suites_[i++] = 0x00;
|
suites_[i++] = 0x00;
|
||||||
suites_[i++] = SSL_DHE_RSA_WITH_DES_CBC_SHA;
|
suites_[i++] = SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA;
|
||||||
suites_[i++] = 0x00;
|
}
|
||||||
suites_[i++] = SSL_DHE_DSS_WITH_DES_CBC_SHA;
|
if (!removeRSA) {
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = SSL_DHE_RSA_WITH_DES_CBC_SHA;
|
||||||
|
}
|
||||||
|
if (!removeDSA) {
|
||||||
|
suites_[i++] = 0x00;
|
||||||
|
suites_[i++] = SSL_DHE_DSS_WITH_DES_CBC_SHA;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suites_size_ = i;
|
suites_size_ = i;
|
||||||
@ -532,7 +565,7 @@ void Parameters::SetCipherNames()
|
|||||||
|
|
||||||
for (int j = 0; j < suites; j++) {
|
for (int j = 0; j < suites; j++) {
|
||||||
int index = suites_[j*2 + 1]; // every other suite is suite id
|
int index = suites_[j*2 + 1]; // every other suite is suite id
|
||||||
int len = strlen(cipher_names[index]) + 1;
|
size_t len = strlen(cipher_names[index]) + 1;
|
||||||
strncpy(cipher_list_[pos++], cipher_names[index], len);
|
strncpy(cipher_list_[pos++], cipher_names[index], len);
|
||||||
}
|
}
|
||||||
cipher_list_[pos][0] = 0;
|
cipher_list_[pos][0] = 0;
|
||||||
@ -1469,7 +1502,19 @@ void ClientHello::Process(input_buffer&, SSL& ssl)
|
|||||||
// downgrade to SSLv3
|
// downgrade to SSLv3
|
||||||
ssl.useSecurity().use_connection().TurnOffTLS();
|
ssl.useSecurity().use_connection().TurnOffTLS();
|
||||||
ProtocolVersion pv = ssl.getSecurity().get_connection().version_;
|
ProtocolVersion pv = ssl.getSecurity().get_connection().version_;
|
||||||
ssl.useSecurity().use_parms().SetSuites(pv); // reset w/ SSL suites
|
bool removeDH = ssl.getSecurity().get_parms().removeDH_;
|
||||||
|
bool removeRSA = false;
|
||||||
|
bool removeDSA = false;
|
||||||
|
|
||||||
|
const CertManager& cm = ssl.getCrypto().get_certManager();
|
||||||
|
if (cm.get_keyType() == rsa_sa_algo)
|
||||||
|
removeDSA = true;
|
||||||
|
else
|
||||||
|
removeRSA = true;
|
||||||
|
|
||||||
|
// reset w/ SSL suites
|
||||||
|
ssl.useSecurity().use_parms().SetSuites(pv, removeDH, removeRSA,
|
||||||
|
removeDSA);
|
||||||
}
|
}
|
||||||
else if (ssl.isTLSv1_1() && client_version_.minor_ == 1)
|
else if (ssl.isTLSv1_1() && client_version_.minor_ == 1)
|
||||||
// downgrade to TLSv1, but use same suites
|
// downgrade to TLSv1, but use same suites
|
||||||
@ -1515,6 +1560,7 @@ void ClientHello::Process(input_buffer&, SSL& ssl)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ssl.matchSuite(cipher_suites_, suite_len_);
|
ssl.matchSuite(cipher_suites_, suite_len_);
|
||||||
|
if (ssl.GetError()) return;
|
||||||
ssl.set_pending(ssl.getSecurity().get_parms().suite_[1]);
|
ssl.set_pending(ssl.getSecurity().get_parms().suite_[1]);
|
||||||
|
|
||||||
if (compression_methods_ == zlib)
|
if (compression_methods_ == zlib)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (C) 2000-2007 MySQL AB
|
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -40,28 +40,28 @@
|
|||||||
|
|
||||||
void* operator new(size_t sz, yaSSL::new_t)
|
void* operator new(size_t sz, yaSSL::new_t)
|
||||||
{
|
{
|
||||||
void* ptr = malloc(sz ? sz : 1);
|
void* ptr = malloc(sz ? sz : 1);
|
||||||
if (!ptr) abort();
|
if (!ptr) abort();
|
||||||
|
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void operator delete(void* ptr, yaSSL::new_t)
|
void operator delete(void* ptr, yaSSL::new_t)
|
||||||
{
|
{
|
||||||
if (ptr) free(ptr);
|
if (ptr) free(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void* operator new[](size_t sz, yaSSL::new_t nt)
|
void* operator new[](size_t sz, yaSSL::new_t nt)
|
||||||
{
|
{
|
||||||
return ::operator new(sz, nt);
|
return ::operator new(sz, nt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void operator delete[](void* ptr, yaSSL::new_t nt)
|
void operator delete[](void* ptr, yaSSL::new_t nt)
|
||||||
{
|
{
|
||||||
::operator delete(ptr, nt);
|
::operator delete(ptr, nt);
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace yaSSL {
|
namespace yaSSL {
|
||||||
@ -308,6 +308,20 @@ SSL::SSL(SSL_CTX* ctx)
|
|||||||
SetError(YasslError(err));
|
SetError(YasslError(err));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else if (serverSide) {
|
||||||
|
// remove RSA or DSA suites depending on cert key type
|
||||||
|
ProtocolVersion pv = secure_.get_connection().version_;
|
||||||
|
|
||||||
|
bool removeDH = secure_.use_parms().removeDH_;
|
||||||
|
bool removeRSA = false;
|
||||||
|
bool removeDSA = false;
|
||||||
|
|
||||||
|
if (cm.get_keyType() == rsa_sa_algo)
|
||||||
|
removeDSA = true;
|
||||||
|
else
|
||||||
|
removeRSA = true;
|
||||||
|
secure_.use_parms().SetSuites(pv, removeDH, removeRSA, removeDSA);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (serverSide) {
|
else if (serverSide) {
|
||||||
SetError(no_key_file);
|
SetError(no_key_file);
|
||||||
@ -320,6 +334,7 @@ SSL::SSL(SSL_CTX* ctx)
|
|||||||
cm.setVerifyNone();
|
cm.setVerifyNone();
|
||||||
if (ctx->getMethod()->failNoCert())
|
if (ctx->getMethod()->failNoCert())
|
||||||
cm.setFailNoCert();
|
cm.setFailNoCert();
|
||||||
|
cm.setVerifyCallback(ctx->getVerifyCallback());
|
||||||
|
|
||||||
if (serverSide)
|
if (serverSide)
|
||||||
crypto_.SetDH(ctx->GetDH_Parms());
|
crypto_.SetDH(ctx->GetDH_Parms());
|
||||||
@ -1034,12 +1049,12 @@ void SSL::fillData(Data& data)
|
|||||||
{
|
{
|
||||||
if (GetError()) return;
|
if (GetError()) return;
|
||||||
uint dataSz = data.get_length(); // input, data size to fill
|
uint dataSz = data.get_length(); // input, data size to fill
|
||||||
uint elements = buffers_.getData().size();
|
size_t elements = buffers_.getData().size();
|
||||||
|
|
||||||
data.set_length(0); // output, actual data filled
|
data.set_length(0); // output, actual data filled
|
||||||
dataSz = min(dataSz, bufferedData());
|
dataSz = min(dataSz, bufferedData());
|
||||||
|
|
||||||
for (uint i = 0; i < elements; i++) {
|
for (size_t i = 0; i < elements; i++) {
|
||||||
input_buffer* front = buffers_.getData().front();
|
input_buffer* front = buffers_.getData().front();
|
||||||
uint frontSz = front->get_remaining();
|
uint frontSz = front->get_remaining();
|
||||||
uint readSz = min(dataSz - data.get_length(), frontSz);
|
uint readSz = min(dataSz - data.get_length(), frontSz);
|
||||||
@ -1063,8 +1078,8 @@ void SSL::fillData(Data& data)
|
|||||||
void SSL::PeekData(Data& data)
|
void SSL::PeekData(Data& data)
|
||||||
{
|
{
|
||||||
if (GetError()) return;
|
if (GetError()) return;
|
||||||
uint dataSz = data.get_length(); // input, data size to fill
|
uint dataSz = data.get_length(); // input, data size to fill
|
||||||
uint elements = buffers_.getData().size();
|
size_t elements = buffers_.getData().size();
|
||||||
|
|
||||||
data.set_length(0); // output, actual data filled
|
data.set_length(0); // output, actual data filled
|
||||||
dataSz = min(dataSz, bufferedData());
|
dataSz = min(dataSz, bufferedData());
|
||||||
@ -1098,9 +1113,9 @@ void SSL::flushBuffer()
|
|||||||
buffers_.getHandShake().end(),
|
buffers_.getHandShake().end(),
|
||||||
SumBuffer()).total_;
|
SumBuffer()).total_;
|
||||||
output_buffer out(sz);
|
output_buffer out(sz);
|
||||||
uint elements = buffers_.getHandShake().size();
|
size_t elements = buffers_.getHandShake().size();
|
||||||
|
|
||||||
for (uint i = 0; i < elements; i++) {
|
for (size_t i = 0; i < elements; i++) {
|
||||||
output_buffer* front = buffers_.getHandShake().front();
|
output_buffer* front = buffers_.getHandShake().front();
|
||||||
out.write(front->get_buffer(), front->get_size());
|
out.write(front->get_buffer(), front->get_size());
|
||||||
|
|
||||||
@ -1276,6 +1291,7 @@ void SSL::matchSuite(const opaque* peer, uint length)
|
|||||||
if (secure_.use_parms().suites_[i] == peer[j]) {
|
if (secure_.use_parms().suites_[i] == peer[j]) {
|
||||||
secure_.use_parms().suite_[0] = 0x00;
|
secure_.use_parms().suite_[0] = 0x00;
|
||||||
secure_.use_parms().suite_[1] = peer[j];
|
secure_.use_parms().suite_[1] = peer[j];
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1284,7 +1300,7 @@ void SSL::matchSuite(const opaque* peer, uint length)
|
|||||||
|
|
||||||
|
|
||||||
void SSL::set_session(SSL_SESSION* s)
|
void SSL::set_session(SSL_SESSION* s)
|
||||||
{
|
{
|
||||||
if (getSecurity().GetContext()->GetSessionCacheOff())
|
if (getSecurity().GetContext()->GetSessionCacheOff())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -1565,13 +1581,19 @@ Errors& GetErrors()
|
|||||||
|
|
||||||
typedef Mutex::Lock Lock;
|
typedef Mutex::Lock Lock;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Sessions::add(const SSL& ssl)
|
void Sessions::add(const SSL& ssl)
|
||||||
{
|
{
|
||||||
if (ssl.getSecurity().get_connection().sessionID_Set_) {
|
if (ssl.getSecurity().get_connection().sessionID_Set_) {
|
||||||
Lock guard(mutex_);
|
Lock guard(mutex_);
|
||||||
list_.push_back(NEW_YS SSL_SESSION(ssl, random_));
|
list_.push_back(NEW_YS SSL_SESSION(ssl, random_));
|
||||||
|
count_++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (count_ > SESSION_FLUSH_COUNT)
|
||||||
|
if (!ssl.getSecurity().GetContext()->GetSessionCacheFlushOff())
|
||||||
|
Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1660,6 +1682,25 @@ void Sessions::remove(const opaque* id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// flush expired sessions from cache
|
||||||
|
void Sessions::Flush()
|
||||||
|
{
|
||||||
|
Lock guard(mutex_);
|
||||||
|
sess_iterator next = list_.begin();
|
||||||
|
uint current = lowResTimer();
|
||||||
|
|
||||||
|
while (next != list_.end()) {
|
||||||
|
sess_iterator si = next;
|
||||||
|
++next;
|
||||||
|
if ( ((*si)->GetBornOn() + (*si)->GetTimeOut()) < current) {
|
||||||
|
del_ptr_zero()(*si);
|
||||||
|
list_.erase(si);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
count_ = 0; // reset flush counter
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// remove a self thread error
|
// remove a self thread error
|
||||||
void Errors::Remove()
|
void Errors::Remove()
|
||||||
{
|
{
|
||||||
@ -1764,7 +1805,8 @@ bool SSL_METHOD::multipleProtocol() const
|
|||||||
|
|
||||||
SSL_CTX::SSL_CTX(SSL_METHOD* meth)
|
SSL_CTX::SSL_CTX(SSL_METHOD* meth)
|
||||||
: method_(meth), certificate_(0), privateKey_(0), passwordCb_(0),
|
: method_(meth), certificate_(0), privateKey_(0), passwordCb_(0),
|
||||||
userData_(0), sessionCacheOff_(false)
|
userData_(0), sessionCacheOff_(false), sessionCacheFlushOff_(false),
|
||||||
|
verifyCallback_(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -1791,6 +1833,12 @@ SSL_CTX::GetCA_List() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const VerifyCallback SSL_CTX::getVerifyCallback() const
|
||||||
|
{
|
||||||
|
return verifyCallback_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const x509* SSL_CTX::getCert() const
|
const x509* SSL_CTX::getCert() const
|
||||||
{
|
{
|
||||||
return certificate_;
|
return certificate_;
|
||||||
@ -1851,6 +1899,12 @@ bool SSL_CTX::GetSessionCacheOff() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SSL_CTX::GetSessionCacheFlushOff() const
|
||||||
|
{
|
||||||
|
return sessionCacheFlushOff_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void SSL_CTX::SetUserData(void* data)
|
void SSL_CTX::SetUserData(void* data)
|
||||||
{
|
{
|
||||||
userData_ = data;
|
userData_ = data;
|
||||||
@ -1863,6 +1917,12 @@ void SSL_CTX::SetSessionCacheOff()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SSL_CTX::SetSessionCacheFlushOff()
|
||||||
|
{
|
||||||
|
sessionCacheFlushOff_ = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void SSL_CTX::setVerifyPeer()
|
void SSL_CTX::setVerifyPeer()
|
||||||
{
|
{
|
||||||
method_->setVerifyPeer();
|
method_->setVerifyPeer();
|
||||||
@ -1881,6 +1941,12 @@ void SSL_CTX::setFailNoCert()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SSL_CTX::setVerifyCallback(VerifyCallback vc)
|
||||||
|
{
|
||||||
|
verifyCallback_ = vc;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool SSL_CTX::SetDH(const DH& dh)
|
bool SSL_CTX::SetDH(const DH& dh)
|
||||||
{
|
{
|
||||||
dhParms_.p_ = dh.p->int_;
|
dhParms_.p_ = dh.p->int_;
|
||||||
@ -1906,7 +1972,7 @@ bool SSL_CTX::SetCipherList(const char* list)
|
|||||||
int idx = 0;
|
int idx = 0;
|
||||||
|
|
||||||
for(;;) {
|
for(;;) {
|
||||||
int len;
|
size_t len;
|
||||||
prev = haystack;
|
prev = haystack;
|
||||||
haystack = strstr(haystack, needle);
|
haystack = strstr(haystack, needle);
|
||||||
|
|
||||||
@ -2316,7 +2382,7 @@ X509::X509(const char* i, size_t iSz, const char* s, size_t sSz,
|
|||||||
: issuer_(i, iSz), subject_(s, sSz),
|
: issuer_(i, iSz), subject_(s, sSz),
|
||||||
beforeDate_(b, bSz), afterDate_(a, aSz)
|
beforeDate_(b, bSz), afterDate_(a, aSz)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
X509_NAME* X509::GetIssuer()
|
X509_NAME* X509::GetIssuer()
|
||||||
{
|
{
|
||||||
@ -2354,10 +2420,10 @@ ASN1_STRING* X509_NAME::GetEntry(int i)
|
|||||||
memcpy(entry_.data, &name_[i], sz_ - i);
|
memcpy(entry_.data, &name_[i], sz_ - i);
|
||||||
if (entry_.data[sz_ -i - 1]) {
|
if (entry_.data[sz_ -i - 1]) {
|
||||||
entry_.data[sz_ - i] = 0;
|
entry_.data[sz_ - i] = 0;
|
||||||
entry_.length = sz_ - i;
|
entry_.length = int(sz_) - i;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
entry_.length = sz_ - i - 1;
|
entry_.length = int(sz_) - i - 1;
|
||||||
entry_.type = 0;
|
entry_.type = 0;
|
||||||
|
|
||||||
return &entry_;
|
return &entry_;
|
||||||
|
@ -18,11 +18,6 @@
|
|||||||
#ifndef _global_h
|
#ifndef _global_h
|
||||||
#define _global_h
|
#define _global_h
|
||||||
|
|
||||||
#ifndef EMBEDDED_LIBRARY
|
|
||||||
#define HAVE_REPLICATION
|
|
||||||
#define HAVE_EXTERNAL_CLIENT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
InnoDB depends on some MySQL internals which other plugins should not
|
InnoDB depends on some MySQL internals which other plugins should not
|
||||||
need. This is because of InnoDB's foreign key support, "safe" binlog
|
need. This is because of InnoDB's foreign key support, "safe" binlog
|
||||||
@ -101,6 +96,11 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif /* !EMBEDDED_LIBRARY */
|
#endif /* !EMBEDDED_LIBRARY */
|
||||||
|
|
||||||
|
#ifndef EMBEDDED_LIBRARY
|
||||||
|
#define HAVE_REPLICATION
|
||||||
|
#define HAVE_EXTERNAL_CLIENT
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Some defines to avoid ifdefs in the code */
|
/* Some defines to avoid ifdefs in the code */
|
||||||
#ifndef NETWARE_YIELD
|
#ifndef NETWARE_YIELD
|
||||||
#define NETWARE_YIELD
|
#define NETWARE_YIELD
|
||||||
|
@ -207,9 +207,7 @@ void STDCALL mysql_server_end()
|
|||||||
/* If library called my_init(), free memory allocated by it */
|
/* If library called my_init(), free memory allocated by it */
|
||||||
if (!org_my_init_done)
|
if (!org_my_init_done)
|
||||||
{
|
{
|
||||||
my_end(MY_DONT_FREE_DBUG);
|
my_end(0);
|
||||||
/* Remove TRACING, if enabled by mysql_debug() */
|
|
||||||
DBUG_POP();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -29,13 +29,13 @@ ADD_DEFINITIONS(-DEMBEDDED_LIBRARY)
|
|||||||
ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc
|
ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc
|
||||||
../../client/mysql.cc ../../client/readline.cc
|
../../client/mysql.cc ../../client/readline.cc
|
||||||
../../client/sql_string.cc)
|
../../client/sql_string.cc)
|
||||||
TARGET_LINK_LIBRARIES(mysql_embedded mysys yassl taocrypt zlib debug dbug regex strings wsock32)
|
TARGET_LINK_LIBRARIES(mysql_embedded debug dbug strings mysys vio yassl taocrypt regex ws2_32)
|
||||||
ADD_DEPENDENCIES(mysql_embedded libmysqld)
|
ADD_DEPENDENCIES(mysql_embedded libmysqld)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.cc)
|
ADD_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.c)
|
||||||
TARGET_LINK_LIBRARIES(mysqltest_embedded mysys yassl taocrypt zlib debug dbug regex strings wsock32)
|
TARGET_LINK_LIBRARIES(mysqltest_embedded debug dbug strings mysys vio yassl taocrypt regex ws2_32)
|
||||||
ADD_DEPENDENCIES(mysqltest_embedded libmysqld)
|
ADD_DEPENDENCIES(mysqltest_embedded libmysqld)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysql_client_test_embedded ../../tests/mysql_client_test.c)
|
ADD_EXECUTABLE(mysql_client_test_embedded ../../tests/mysql_client_test.c)
|
||||||
TARGET_LINK_LIBRARIES(mysql_client_test_embedded debug dbug mysys yassl taocrypt zlib strings wsock32)
|
TARGET_LINK_LIBRARIES(mysql_client_test_embedded debug dbug strings mysys vio yassl taocrypt regex ws2_32)
|
||||||
ADD_DEPENDENCIES(mysql_client_test_embedded libmysqld)
|
ADD_DEPENDENCIES(mysql_client_test_embedded libmysqld)
|
||||||
|
@ -384,7 +384,9 @@ static void emb_free_embedded_thd(MYSQL *mysql)
|
|||||||
thd->clear_data_list();
|
thd->clear_data_list();
|
||||||
thread_count--;
|
thread_count--;
|
||||||
thd->store_globals();
|
thd->store_globals();
|
||||||
|
thd->unlink();
|
||||||
delete thd;
|
delete thd;
|
||||||
|
my_pthread_setspecific_ptr(THR_THD, 0);
|
||||||
mysql->thd=0;
|
mysql->thd=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -538,12 +540,7 @@ int init_embedded_server(int argc, char **argv, char **groups)
|
|||||||
|
|
||||||
(void) thr_setconcurrency(concurrency); // 10 by default
|
(void) thr_setconcurrency(concurrency); // 10 by default
|
||||||
|
|
||||||
if (flush_time && flush_time != ~(ulong) 0L)
|
start_handle_manager();
|
||||||
{
|
|
||||||
pthread_t hThread;
|
|
||||||
if (pthread_create(&hThread,&connection_attrib,handle_manager,0))
|
|
||||||
sql_print_error("Warning: Can't create thread to manage maintenance");
|
|
||||||
}
|
|
||||||
|
|
||||||
// FIXME initialize binlog_filter and rpl_filter if not already done
|
// FIXME initialize binlog_filter and rpl_filter if not already done
|
||||||
// corresponding delete is in clean_up()
|
// corresponding delete is in clean_up()
|
||||||
@ -627,6 +624,7 @@ void *create_embedded_thd(int client_flag)
|
|||||||
bzero((char*) &thd->net, sizeof(thd->net));
|
bzero((char*) &thd->net, sizeof(thd->net));
|
||||||
|
|
||||||
thread_count++;
|
thread_count++;
|
||||||
|
threads.append(thd);
|
||||||
return thd;
|
return thd;
|
||||||
err:
|
err:
|
||||||
delete(thd);
|
delete(thd);
|
||||||
|
@ -2,34 +2,6 @@ LIBRARY LIBMYSQLD
|
|||||||
DESCRIPTION 'MySQL 5.1 Embedded Server Library'
|
DESCRIPTION 'MySQL 5.1 Embedded Server Library'
|
||||||
VERSION 5.1
|
VERSION 5.1
|
||||||
EXPORTS
|
EXPORTS
|
||||||
_dig_vec_upper
|
|
||||||
_dig_vec_lower
|
|
||||||
bmove_upp
|
|
||||||
delete_dynamic
|
|
||||||
free_defaults
|
|
||||||
getopt_compare_strings
|
|
||||||
getopt_ull_limit_value
|
|
||||||
handle_options
|
|
||||||
init_dynamic_array
|
|
||||||
insert_dynamic
|
|
||||||
int2str
|
|
||||||
is_prefix
|
|
||||||
list_add
|
|
||||||
list_delete
|
|
||||||
load_defaults
|
|
||||||
max_allowed_packet
|
|
||||||
my_cgets
|
|
||||||
my_end
|
|
||||||
my_getopt_print_errors
|
|
||||||
my_init
|
|
||||||
my_malloc
|
|
||||||
my_memdup
|
|
||||||
my_no_flags_free
|
|
||||||
my_path
|
|
||||||
my_print_help
|
|
||||||
my_print_variables
|
|
||||||
my_realloc
|
|
||||||
my_strdup
|
|
||||||
mysql_thread_end
|
mysql_thread_end
|
||||||
mysql_thread_init
|
mysql_thread_init
|
||||||
myodbc_remove_escape
|
myodbc_remove_escape
|
||||||
@ -102,47 +74,13 @@ EXPORTS
|
|||||||
mysql_thread_safe
|
mysql_thread_safe
|
||||||
mysql_use_result
|
mysql_use_result
|
||||||
mysql_warning_count
|
mysql_warning_count
|
||||||
set_dynamic
|
|
||||||
strcend
|
|
||||||
strcont
|
|
||||||
strdup_root
|
|
||||||
strfill
|
|
||||||
strinstr
|
|
||||||
strmake
|
|
||||||
strmov
|
|
||||||
strxmov
|
|
||||||
mysql_server_end
|
mysql_server_end
|
||||||
mysql_server_init
|
mysql_server_init
|
||||||
get_tty_password
|
get_tty_password
|
||||||
sql_protocol_typelib
|
|
||||||
mysql_get_server_version
|
mysql_get_server_version
|
||||||
mysql_set_character_set
|
mysql_set_character_set
|
||||||
mysql_sqlstate
|
mysql_sqlstate
|
||||||
charsets_dir
|
|
||||||
disabled_my_option
|
|
||||||
my_charset_latin1
|
|
||||||
init_alloc_root
|
|
||||||
my_progname
|
|
||||||
get_charset_name
|
|
||||||
get_charset_by_csname
|
|
||||||
print_defaults
|
|
||||||
find_type
|
|
||||||
strxnmov
|
|
||||||
strend
|
|
||||||
my_fopen
|
|
||||||
my_fclose
|
|
||||||
unpack_filename
|
|
||||||
str2int
|
|
||||||
int10_to_str
|
|
||||||
longlong10_to_str
|
|
||||||
my_snprintf_8bit
|
|
||||||
alloc_root
|
|
||||||
free_root
|
|
||||||
my_read
|
|
||||||
llstr
|
|
||||||
mysql_get_parameters
|
mysql_get_parameters
|
||||||
mysql_thread_init
|
|
||||||
mysql_thread_end
|
|
||||||
mysql_stmt_bind_param
|
mysql_stmt_bind_param
|
||||||
mysql_stmt_bind_result
|
mysql_stmt_bind_result
|
||||||
mysql_stmt_execute
|
mysql_stmt_execute
|
||||||
@ -170,7 +108,3 @@ EXPORTS
|
|||||||
mysql_stmt_attr_get
|
mysql_stmt_attr_get
|
||||||
mysql_stmt_attr_set
|
mysql_stmt_attr_set
|
||||||
mysql_stmt_field_count
|
mysql_stmt_field_count
|
||||||
get_defaults_options
|
|
||||||
my_charset_bin
|
|
||||||
my_charset_same
|
|
||||||
modify_defaults_file
|
|
||||||
|
@ -235,8 +235,10 @@ BEGIN
|
|||||||
FROM information_schema.global_variables
|
FROM information_schema.global_variables
|
||||||
WHERE variable_name='LOG_ERROR';
|
WHERE variable_name='LOG_ERROR';
|
||||||
|
|
||||||
SET @@session.max_allowed_packet= 1024*1024*1024;
|
SET @old_max_allowed_packet= @@global.max_allowed_packet;
|
||||||
|
SET @@global.max_allowed_packet= 1024*1024*1024;
|
||||||
SET text= load_file(@log_error);
|
SET text= load_file(@log_error);
|
||||||
|
SET @@global.max_allowed_packet= @old_max_allowed_packet;
|
||||||
-- select text;
|
-- select text;
|
||||||
|
|
||||||
SET pos= LOCATE('\n', text);
|
SET pos= LOCATE('\n', text);
|
||||||
|
@ -1754,8 +1754,8 @@ create table t1 like information_schema.character_sets;
|
|||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`DEFAULT_COLLATE_NAME` varchar(64) NOT NULL DEFAULT '',
|
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
||||||
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
||||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||||
|
40
mysql-test/r/csv_alter_table.result
Normal file
40
mysql-test/r/csv_alter_table.result
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# ===== csv_alter_table.1 =====
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
CREATE TABLE t1 (a int NOT NULL) ENGINE = CSV;
|
||||||
|
ALTER TABLE t1 ADD COLUMN b CHAR(5) NOT NULL;
|
||||||
|
DESC t1;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
a int(11) NO NULL
|
||||||
|
b char(5) NO NULL
|
||||||
|
ALTER TABLE t1 DROP COLUMN b;
|
||||||
|
DESC t1;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
a int(11) NO NULL
|
||||||
|
ALTER TABLE t1 MODIFY a BIGINT NOT NULL;
|
||||||
|
DESC t1;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
a bigint(20) NO NULL
|
||||||
|
ALTER TABLE t1 CHANGE a a INT NOT NULL;
|
||||||
|
DESC t1;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
a int(11) NO NULL
|
||||||
|
DROP TABLE t1;
|
||||||
|
# ===== csv_alter_table.2 =====
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
CREATE TABLE t1 (a int NOT NULL) ENGINE = CSV;
|
||||||
|
ALTER TABLE t1 ADD COLUMN b CHAR(5);
|
||||||
|
ERROR 42000: The storage engine for the table doesn't support nullable columns
|
||||||
|
DESC t1;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
a int(11) NO NULL
|
||||||
|
ALTER TABLE t1 MODIFY a BIGINT;
|
||||||
|
ERROR 42000: The storage engine for the table doesn't support nullable columns
|
||||||
|
DESC t1;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
a int(11) NO NULL
|
||||||
|
ALTER TABLE t1 CHANGE a a INT;
|
||||||
|
ERROR 42000: The storage engine for the table doesn't support nullable columns
|
||||||
|
DESC t1;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
a int(11) NO NULL
|
||||||
|
DROP TABLE t1;
|
11
mysql-test/r/ctype_filesystem.result
Normal file
11
mysql-test/r/ctype_filesystem.result
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
SET CHARACTER SET utf8;
|
||||||
|
SHOW VARIABLES like 'character_sets_dir';
|
||||||
|
Variable_name Value
|
||||||
|
character_sets_dir MYSQL_TEST_DIR/ß/
|
||||||
|
SHOW VARIABLES like 'character_set_filesystem';
|
||||||
|
Variable_name Value
|
||||||
|
character_set_filesystem latin1
|
||||||
|
SHOW VARIABLES like 'character_set_client';
|
||||||
|
Variable_name Value
|
||||||
|
character_set_client utf8
|
||||||
|
SET CHARACTER SET default;
|
@ -1848,3 +1848,35 @@ select hex(_utf8 B'001111111111');
|
|||||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||||
select (_utf8 X'616263FF');
|
select (_utf8 X'616263FF');
|
||||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||||
|
CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES (70000, 1092), (70001, 1085), (70002, 1065);
|
||||||
|
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||||
|
CONVERT(a, CHAR) CONVERT(b, CHAR)
|
||||||
|
70002 1065
|
||||||
|
70001 1085
|
||||||
|
70000 1092
|
||||||
|
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1;
|
||||||
|
CONVERT(a, CHAR) CONVERT(b, CHAR)
|
||||||
|
70000 1092
|
||||||
|
70001 1085
|
||||||
|
70002 1065
|
||||||
|
ALTER TABLE t1 ADD UNIQUE (b);
|
||||||
|
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||||
|
CONVERT(a, CHAR) CONVERT(b, CHAR)
|
||||||
|
70002 1065
|
||||||
|
70001 1085
|
||||||
|
70000 1092
|
||||||
|
DROP INDEX b ON t1;
|
||||||
|
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||||
|
CONVERT(a, CHAR) CONVERT(b, CHAR)
|
||||||
|
70002 1065
|
||||||
|
70001 1085
|
||||||
|
70000 1092
|
||||||
|
ALTER TABLE t1 ADD INDEX (b);
|
||||||
|
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) from t1 GROUP BY b;
|
||||||
|
CONVERT(a, CHAR) CONVERT(b, CHAR)
|
||||||
|
70002 1065
|
||||||
|
70001 1085
|
||||||
|
70000 1092
|
||||||
|
DROP TABLE t1;
|
||||||
|
End of 5.0 tests
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
CREATE DATABASE IF NOT EXISTS events_test;
|
CREATE DATABASE IF NOT EXISTS events_test;
|
||||||
USE events_test;
|
USE events_test;
|
||||||
|
SET @event_scheduler=@@global.event_scheduler;
|
||||||
SET GLOBAL event_scheduler=OFF;
|
SET GLOBAL event_scheduler=OFF;
|
||||||
Try agian to make sure it's allowed
|
Try again to make sure it's allowed
|
||||||
SET GLOBAL event_scheduler=OFF;
|
SET GLOBAL event_scheduler=OFF;
|
||||||
SHOW VARIABLES LIKE 'event_scheduler';
|
SHOW VARIABLES LIKE 'event_scheduler';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
@ -64,8 +65,8 @@ INSERT INTO table_4 VALUES (1);
|
|||||||
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_1;
|
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_1;
|
||||||
IF(SUM(a) >= 4, 'OK', 'ERROR')
|
IF(SUM(a) >= 4, 'OK', 'ERROR')
|
||||||
OK
|
OK
|
||||||
SELECT IF(SUM(a) >= 5, 'OK', 'ERROR') FROM table_2;
|
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_2;
|
||||||
IF(SUM(a) >= 5, 'OK', 'ERROR')
|
IF(SUM(a) >= 4, 'OK', 'ERROR')
|
||||||
OK
|
OK
|
||||||
SELECT IF(SUM(a) >= 1, 'OK', 'ERROR') FROM table_3;
|
SELECT IF(SUM(a) >= 1, 'OK', 'ERROR') FROM table_3;
|
||||||
IF(SUM(a) >= 1, 'OK', 'ERROR')
|
IF(SUM(a) >= 1, 'OK', 'ERROR')
|
||||||
@ -94,4 +95,4 @@ DROP TABLE table_2;
|
|||||||
DROP TABLE table_3;
|
DROP TABLE table_3;
|
||||||
DROP TABLE table_4;
|
DROP TABLE table_4;
|
||||||
DROP DATABASE events_test;
|
DROP DATABASE events_test;
|
||||||
SET GLOBAL event_scheduler=OFF;
|
SET GLOBAL event_scheduler=@event_scheduler;
|
||||||
|
@ -14,6 +14,7 @@ RETURN FLOOR((i % (step * n) + 0.1) / step);
|
|||||||
END//
|
END//
|
||||||
SET @step3= @step * 3;
|
SET @step3= @step * 3;
|
||||||
SET @step6= @step * 6;
|
SET @step6= @step * 6;
|
||||||
|
SET @unix_time= UNIX_TIMESTAMP() - 1;
|
||||||
SET @unix_time= @unix_time - @unix_time % @step6;
|
SET @unix_time= @unix_time - @unix_time % @step6;
|
||||||
INSERT INTO mysql.time_zone VALUES (NULL, 'N');
|
INSERT INTO mysql.time_zone VALUES (NULL, 'N');
|
||||||
SET @tzid= LAST_INSERT_ID();
|
SET @tzid= LAST_INSERT_ID();
|
||||||
@ -21,7 +22,7 @@ INSERT INTO mysql.time_zone_transition_type
|
|||||||
VALUES (@tzid, 0, 0, 0, 'b16420_0');
|
VALUES (@tzid, 0, 0, 0, 'b16420_0');
|
||||||
INSERT INTO mysql.time_zone_transition_type
|
INSERT INTO mysql.time_zone_transition_type
|
||||||
VALUES (@tzid, 1, @step3 - @step, 1, 'b16420_1');
|
VALUES (@tzid, 1, @step3 - @step, 1, 'b16420_1');
|
||||||
INSERT INTO mysql.time_zone_name VALUES ('bug16420', @tzid);
|
INSERT INTO mysql.time_zone_name VALUES ('<TZ_NAME_1>', @tzid);
|
||||||
CREATE TABLE t1 (count INT, unix_time INT, local_time INT, comment CHAR(80));
|
CREATE TABLE t1 (count INT, unix_time INT, local_time INT, comment CHAR(80));
|
||||||
CREATE TABLE t2 (count INT);
|
CREATE TABLE t2 (count INT);
|
||||||
INSERT INTO t2 VALUES (1);
|
INSERT INTO t2 VALUES (1);
|
||||||
@ -48,7 +49,7 @@ END//
|
|||||||
SET TIME_ZONE= '+00:00';
|
SET TIME_ZONE= '+00:00';
|
||||||
CREATE EVENT e1 ON SCHEDULE EVERY @step SECOND
|
CREATE EVENT e1 ON SCHEDULE EVERY @step SECOND
|
||||||
STARTS FROM_UNIXTIME(@unix_time) DO SELECT f1("<e1>");
|
STARTS FROM_UNIXTIME(@unix_time) DO SELECT f1("<e1>");
|
||||||
SET TIME_ZONE= 'bug16420';
|
SET TIME_ZONE= '<TZ_NAME_1>';
|
||||||
CREATE EVENT e2 ON SCHEDULE EVERY @step SECOND
|
CREATE EVENT e2 ON SCHEDULE EVERY @step SECOND
|
||||||
STARTS FROM_UNIXTIME(@unix_time) DO SELECT f1("<e2>");
|
STARTS FROM_UNIXTIME(@unix_time) DO SELECT f1("<e2>");
|
||||||
SET GLOBAL EVENT_SCHEDULER= ON;
|
SET GLOBAL EVENT_SCHEDULER= ON;
|
||||||
@ -86,6 +87,7 @@ DELETE FROM mysql.time_zone_name WHERE time_zone_id = @tzid;
|
|||||||
DELETE FROM mysql.time_zone_transition_type WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone_transition_type WHERE time_zone_id = @tzid;
|
||||||
DELETE FROM mysql.time_zone_transition WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone_transition WHERE time_zone_id = @tzid;
|
||||||
DELETE FROM mysql.time_zone WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone WHERE time_zone_id = @tzid;
|
||||||
|
ALTER TABLE mysql.time_zone AUTO_INCREMENT = 6;
|
||||||
SET TIME_ZONE= '+00:00';
|
SET TIME_ZONE= '+00:00';
|
||||||
CREATE TABLE t1 (event CHAR(2), dt DATE, offset INT);
|
CREATE TABLE t1 (event CHAR(2), dt DATE, offset INT);
|
||||||
INSERT INTO mysql.time_zone VALUES (NULL, 'N');
|
INSERT INTO mysql.time_zone VALUES (NULL, 'N');
|
||||||
@ -111,8 +113,8 @@ INSERT INTO mysql.time_zone_transition
|
|||||||
VALUES (@tzid, @now + 7 * @step, 2);
|
VALUES (@tzid, @now + 7 * @step, 2);
|
||||||
INSERT INTO mysql.time_zone_transition
|
INSERT INTO mysql.time_zone_transition
|
||||||
VALUES (@tzid, @now + 12 * @step, 3);
|
VALUES (@tzid, @now + 12 * @step, 3);
|
||||||
INSERT INTO mysql.time_zone_name VALUES ('bug16420_2', @tzid);
|
INSERT INTO mysql.time_zone_name VALUES ('<TZ_NAME_2>', @tzid);
|
||||||
SET TIME_ZONE= 'bug16420_2';
|
SET TIME_ZONE= '<TZ_NAME_2>';
|
||||||
SET GLOBAL EVENT_SCHEDULER= ON;
|
SET GLOBAL EVENT_SCHEDULER= ON;
|
||||||
SET GLOBAL EVENT_SCHEDULER= OFF;
|
SET GLOBAL EVENT_SCHEDULER= OFF;
|
||||||
Below we should see the following:
|
Below we should see the following:
|
||||||
@ -143,6 +145,7 @@ DELETE FROM mysql.time_zone_name WHERE time_zone_id = @tzid;
|
|||||||
DELETE FROM mysql.time_zone_transition_type WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone_transition_type WHERE time_zone_id = @tzid;
|
||||||
DELETE FROM mysql.time_zone_transition WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone_transition WHERE time_zone_id = @tzid;
|
||||||
DELETE FROM mysql.time_zone WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone WHERE time_zone_id = @tzid;
|
||||||
|
ALTER TABLE mysql.time_zone AUTO_INCREMENT = 6;
|
||||||
DROP FUNCTION round_to_step;
|
DROP FUNCTION round_to_step;
|
||||||
DROP TABLE t_step;
|
DROP TABLE t_step;
|
||||||
DROP DATABASE mysqltest_db1;
|
DROP DATABASE mysqltest_db1;
|
||||||
|
@ -494,3 +494,31 @@ SELECT a FROM t1 WHERE MATCH a AGAINST ('+city* of*' IN BOOLEAN MODE);
|
|||||||
a
|
a
|
||||||
City Of God
|
City Of God
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(255), b INT, FULLTEXT(a), KEY(b));
|
||||||
|
INSERT INTO t1 VALUES('test', 1),('test', 1),('test', 1),('test', 1),
|
||||||
|
('test', 1),('test', 2),('test', 3),('test', 4);
|
||||||
|
EXPLAIN SELECT * FROM t1
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 fulltext b,a a 0 1 Using where
|
||||||
|
EXPLAIN SELECT * FROM t1 USE INDEX(a)
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 fulltext a a 0 1 Using where
|
||||||
|
EXPLAIN SELECT * FROM t1 FORCE INDEX(a)
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 fulltext a a 0 1 Using where
|
||||||
|
EXPLAIN SELECT * FROM t1 IGNORE INDEX(a)
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ref b b 5 const 4 Using where
|
||||||
|
EXPLAIN SELECT * FROM t1 USE INDEX(b)
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ref b b 5 const 4 Using where
|
||||||
|
EXPLAIN SELECT * FROM t1 FORCE INDEX(b)
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ref b b 5 const 4 Using where
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -68,7 +68,7 @@ Warnings:
|
|||||||
Error 1259 ZLIB: Input data corrupted
|
Error 1259 ZLIB: Input data corrupted
|
||||||
Error 1256 Uncompressed data size too large; the maximum size is 1048576 (probably, length of uncompressed data was corrupted)
|
Error 1256 Uncompressed data size too large; the maximum size is 1048576 (probably, length of uncompressed data was corrupted)
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set @@max_allowed_packet=1048576*100;
|
set @@global.max_allowed_packet=1048576*100;
|
||||||
select compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null;
|
select compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null;
|
||||||
compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null
|
compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null
|
||||||
0
|
0
|
||||||
|
@ -1453,4 +1453,27 @@ LIMIT 1)
|
|||||||
1
|
1
|
||||||
DROP TABLE derived1;
|
DROP TABLE derived1;
|
||||||
DROP TABLE D;
|
DROP TABLE D;
|
||||||
|
CREATE TABLE t1 (a INT, b INT);
|
||||||
|
INSERT INTO t1 VALUES (1,1), (1,2), (1,3);
|
||||||
|
SET SQL_MODE='ONLY_FULL_GROUP_BY';
|
||||||
|
SELECT COUNT(*) FROM t1;
|
||||||
|
COUNT(*)
|
||||||
|
3
|
||||||
|
SELECT COUNT(*) FROM t1 where a=1;
|
||||||
|
COUNT(*)
|
||||||
|
3
|
||||||
|
SELECT COUNT(*),a FROM t1;
|
||||||
|
ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
|
||||||
|
SELECT COUNT(*) FROM t1 a JOIN t1 b ON a.a= b.a;
|
||||||
|
COUNT(*)
|
||||||
|
9
|
||||||
|
SELECT COUNT(*), (SELECT count(*) FROM t1 inr WHERE inr.a = outr.a)
|
||||||
|
FROM t1 outr;
|
||||||
|
ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
|
||||||
|
SELECT COUNT(*) FROM t1 a JOIN t1 outr
|
||||||
|
ON a.a= (SELECT count(*) FROM t1 inr WHERE inr.a = outr.a);
|
||||||
|
COUNT(*)
|
||||||
|
0
|
||||||
|
SET SQL_MODE=default;
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -256,3 +256,15 @@ a
|
|||||||
select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f");
|
select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f");
|
||||||
str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f")
|
str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f")
|
||||||
2003-01-02 10:11:12.001200
|
2003-01-02 10:11:12.001200
|
||||||
|
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10'),time('00:00:00');
|
||||||
|
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10') time('00:00:00')
|
||||||
|
-24:00:00 00:00:00
|
||||||
|
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00');
|
||||||
|
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00')
|
||||||
|
0
|
||||||
|
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00');
|
||||||
|
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00')
|
||||||
|
1
|
||||||
|
SELECT CAST(time('-73:42:12') AS DECIMAL);
|
||||||
|
CAST(time('-73:42:12') AS DECIMAL)
|
||||||
|
-734212
|
||||||
|
@ -26,7 +26,7 @@ SELECT @@general_log;
|
|||||||
INSERT into t1(name) values('Record_3');
|
INSERT into t1(name) values('Record_3');
|
||||||
INSERT into t1(name) values('Record_4');
|
INSERT into t1(name) values('Record_4');
|
||||||
## There should be a difference ##
|
## There should be a difference ##
|
||||||
SET @@session.max_allowed_packet= 1024*1024*1024;
|
SET @@global.max_allowed_packet= 1024*1024*1024;
|
||||||
SET @orig_file= load_file('MYSQLD_LOGFILE.orig');
|
SET @orig_file= load_file('MYSQLD_LOGFILE.orig');
|
||||||
SET @copy_file= load_file('MYSQLD_LOGFILE.copy');
|
SET @copy_file= load_file('MYSQLD_LOGFILE.copy');
|
||||||
SELECT STRCMP(@orig_file, @copy_file);
|
SELECT STRCMP(@orig_file, @copy_file);
|
||||||
|
@ -1,31 +1,41 @@
|
|||||||
SET @save = @@global.group_concat_max_len;
|
SET @save = @@global.group_concat_max_len;
|
||||||
drop table if exists t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
## Creating new table t1 ##
|
## Creating new table t1 ##
|
||||||
CREATE TABLE t1
|
CREATE TABLE t1
|
||||||
(
|
(
|
||||||
id INT NOT NULL auto_increment,
|
id INT NOT NULL AUTO_INCREMENT,
|
||||||
PRIMARY KEY (id),
|
PRIMARY KEY (id),
|
||||||
rollno int NOT NULL,
|
rollno INT NOT NULL,
|
||||||
name VARCHAR(30)
|
name VARCHAR(30)
|
||||||
);
|
);
|
||||||
'#--------------------FN_DYNVARS_034_01-------------------------#'
|
'#--------------------FN_DYNVARS_034_01-------------------------#'
|
||||||
## Setting initial value of variable to 4 ##
|
## Setting initial value of variable to 4 ##
|
||||||
SET @@global.group_concat_max_len = 4;
|
SET @@global.group_concat_max_len = 4;
|
||||||
## Inserting some rows in table ##
|
## Inserting some rows in table ##
|
||||||
INSERT into t1(rollno, name) values(1, 'Record_1');
|
INSERT INTO t1(rollno, name) VALUES(1, 'Record_1');
|
||||||
INSERT into t1(rollno, name) values(2, 'Record_2');
|
INSERT INTO t1(rollno, name) VALUES(2, 'Record_2');
|
||||||
INSERT into t1(rollno, name) values(1, 'Record_3');
|
INSERT INTO t1(rollno, name) VALUES(1, 'Record_3');
|
||||||
INSERT into t1(rollno, name) values(3, 'Record_4');
|
INSERT INTO t1(rollno, name) VALUES(3, 'Record_4');
|
||||||
INSERT into t1(rollno, name) values(1, 'Record_5');
|
INSERT INTO t1(rollno, name) VALUES(1, 'Record_5');
|
||||||
INSERT into t1(rollno, name) values(3, 'Record_6');
|
INSERT INTO t1(rollno, name) VALUES(3, 'Record_6');
|
||||||
INSERT into t1(rollno, name) values(4, 'Record_7');
|
INSERT INTO t1(rollno, name) VALUES(4, 'Record_7');
|
||||||
INSERT into t1(rollno, name) values(4, 'Record_8');
|
INSERT INTO t1(rollno, name) VALUES(4, 'Record_8');
|
||||||
## Creating two new connections ##
|
SELECT * FROM t1 ORDER BY id;
|
||||||
|
id rollno name
|
||||||
|
1 1 Record_1
|
||||||
|
2 2 Record_2
|
||||||
|
3 1 Record_3
|
||||||
|
4 3 Record_4
|
||||||
|
5 1 Record_5
|
||||||
|
6 3 Record_6
|
||||||
|
7 4 Record_7
|
||||||
|
8 4 Record_8
|
||||||
|
## Creating two new connections ##
|
||||||
'#--------------------FN_DYNVARS_034_02-------------------------#'
|
'#--------------------FN_DYNVARS_034_02-------------------------#'
|
||||||
## Connecting with test_con1 ##
|
## Connecting with test_con1 ##
|
||||||
## Accessing data and using group_concat on column whose value is greater than 4 ##
|
## Accessing data and using group_concat on column whose value is greater than 4 ##
|
||||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
|
||||||
id rollno group_concat(name)
|
id rollno GROUP_CONCAT(name)
|
||||||
1 1 Reco
|
1 1 Reco
|
||||||
2 2 Reco
|
2 2 Reco
|
||||||
4 3 Reco
|
4 3 Reco
|
||||||
@ -33,10 +43,10 @@ id rollno group_concat(name)
|
|||||||
Warnings:
|
Warnings:
|
||||||
Warning 1260 4 line(s) were cut by GROUP_CONCAT()
|
Warning 1260 4 line(s) were cut by GROUP_CONCAT()
|
||||||
## Changing session value of variable and verifying its behavior, ##
|
## Changing session value of variable and verifying its behavior, ##
|
||||||
## warning should come here ##
|
## warning should come here ##
|
||||||
SET @@session.group_concat_max_len = 10;
|
SET @@session.group_concat_max_len = 10;
|
||||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
|
||||||
id rollno group_concat(name)
|
id rollno GROUP_CONCAT(name)
|
||||||
1 1 Record_1,R
|
1 1 Record_1,R
|
||||||
2 2 Record_2
|
2 2 Record_2
|
||||||
4 3 Record_4,R
|
4 3 Record_4,R
|
||||||
@ -44,18 +54,18 @@ id rollno group_concat(name)
|
|||||||
Warnings:
|
Warnings:
|
||||||
Warning 1260 3 line(s) were cut by GROUP_CONCAT()
|
Warning 1260 3 line(s) were cut by GROUP_CONCAT()
|
||||||
'#--------------------FN_DYNVARS_034_03-------------------------#'
|
'#--------------------FN_DYNVARS_034_03-------------------------#'
|
||||||
## Connecting with new connection test_con2 ##
|
## Connecting with new connection test_con2 ##
|
||||||
## Verifying initial value of variable. It should be 4 ##
|
## Verifying initial value of variable. It should be 4 ##
|
||||||
SELECT @@session.group_concat_max_len = 4;
|
SELECT @@session.group_concat_max_len = 4;
|
||||||
@@session.group_concat_max_len = 4
|
@@session.group_concat_max_len = 4
|
||||||
1
|
1
|
||||||
## Setting session value of variable to 20 and verifying variable is concating ##
|
## Setting session value of variable to 20 and verifying variable is concating ##
|
||||||
## column's value to 20 or not ##
|
## column's value to 20 or not ##
|
||||||
SET @@session.group_concat_max_len = 20;
|
SET @@session.group_concat_max_len = 20;
|
||||||
## Verifying value of name column, it should not me more than 20 characters ##
|
## Verifying value of name column, it should not me more than 20 characters ##
|
||||||
## Warning should come here ##
|
## Warning should come here ##
|
||||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
|
||||||
id rollno group_concat(name)
|
id rollno GROUP_CONCAT(name)
|
||||||
1 1 Record_1,Record_3,Re
|
1 1 Record_1,Record_3,Re
|
||||||
2 2 Record_2
|
2 2 Record_2
|
||||||
4 3 Record_4,Record_6
|
4 3 Record_4,Record_6
|
||||||
@ -63,17 +73,17 @@ id rollno group_concat(name)
|
|||||||
Warnings:
|
Warnings:
|
||||||
Warning 1260 1 line(s) were cut by GROUP_CONCAT()
|
Warning 1260 1 line(s) were cut by GROUP_CONCAT()
|
||||||
'#--------------------FN_DYNVARS_034_04-------------------------#'
|
'#--------------------FN_DYNVARS_034_04-------------------------#'
|
||||||
## Setting session value of variable to 26. No warning should appear here ##
|
## Setting session value of variable to 26. No warning should appear here ##
|
||||||
## because the value after concatination is less than 30 ##
|
## because the value after concatination is less than 30 ##
|
||||||
SET @@session.group_concat_max_len = 26;
|
SET @@session.group_concat_max_len = 26;
|
||||||
## Verifying value of name column, it should not give warning now ##
|
## Verifying value of name column, it should not give warning now ##
|
||||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
|
||||||
id rollno group_concat(name)
|
id rollno GROUP_CONCAT(name)
|
||||||
1 1 Record_1,Record_3,Record_5
|
1 1 Record_1,Record_3,Record_5
|
||||||
2 2 Record_2
|
2 2 Record_2
|
||||||
4 3 Record_4,Record_6
|
4 3 Record_4,Record_6
|
||||||
7 4 Record_7,Record_8
|
7 4 Record_7,Record_8
|
||||||
## Dropping table t1 ##
|
## Dropping table t1 ##
|
||||||
DROP table t1;
|
DROP TABLE t1;
|
||||||
## Disconnecting both the connection ##
|
## Disconnecting both the connection ##
|
||||||
SET @@global.group_concat_max_len = @save;
|
SET @@global.group_concat_max_len = @save;
|
||||||
|
@ -525,8 +525,8 @@ drop table t1;
|
|||||||
SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
|
SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
|
CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
|
||||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`DEFAULT_COLLATE_NAME` varchar(64) NOT NULL DEFAULT '',
|
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
||||||
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
||||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||||
@ -534,8 +534,8 @@ set names latin2;
|
|||||||
SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
|
SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
|
CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
|
||||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`DEFAULT_COLLATE_NAME` varchar(64) NOT NULL DEFAULT '',
|
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
||||||
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
||||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||||
@ -549,8 +549,8 @@ alter table t1 default character set utf8;
|
|||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`DEFAULT_COLLATE_NAME` varchar(64) NOT NULL DEFAULT '',
|
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
||||||
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||||
@ -724,8 +724,8 @@ select column_type from information_schema.columns
|
|||||||
where table_schema="information_schema" and table_name="COLUMNS" and
|
where table_schema="information_schema" and table_name="COLUMNS" and
|
||||||
(column_name="character_set_name" or column_name="collation_name");
|
(column_name="character_set_name" or column_name="collation_name");
|
||||||
column_type
|
column_type
|
||||||
varchar(64)
|
varchar(32)
|
||||||
varchar(64)
|
varchar(32)
|
||||||
select TABLE_ROWS from information_schema.tables where
|
select TABLE_ROWS from information_schema.tables where
|
||||||
table_schema="information_schema" and table_name="COLUMNS";
|
table_schema="information_schema" and table_name="COLUMNS";
|
||||||
TABLE_ROWS
|
TABLE_ROWS
|
||||||
@ -772,7 +772,6 @@ information_schema PARTITIONS PARTITION_DESCRIPTION
|
|||||||
information_schema PLUGINS PLUGIN_DESCRIPTION
|
information_schema PLUGINS PLUGIN_DESCRIPTION
|
||||||
information_schema PROCESSLIST INFO
|
information_schema PROCESSLIST INFO
|
||||||
information_schema ROUTINES ROUTINE_DEFINITION
|
information_schema ROUTINES ROUTINE_DEFINITION
|
||||||
information_schema ROUTINES SQL_MODE
|
|
||||||
information_schema TRIGGERS ACTION_CONDITION
|
information_schema TRIGGERS ACTION_CONDITION
|
||||||
information_schema TRIGGERS ACTION_STATEMENT
|
information_schema TRIGGERS ACTION_STATEMENT
|
||||||
information_schema VIEWS VIEW_DEFINITION
|
information_schema VIEWS VIEW_DEFINITION
|
||||||
@ -1660,4 +1659,60 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
explain select count(*) from information_schema.views;
|
explain select count(*) from information_schema.views;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE views ALL NULL NULL NULL NULL NULL Open_frm_only; Scanned all databases
|
1 SIMPLE views ALL NULL NULL NULL NULL NULL Open_frm_only; Scanned all databases
|
||||||
|
set global init_connect="drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;";
|
||||||
|
select * from information_schema.global_variables where variable_name='init_connect';
|
||||||
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
|
INIT_CONNECT drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists t1;
|
||||||
|
drop table if exists t1;drop table if exists
|
||||||
|
Warnings:
|
||||||
|
Warning 1265 Data truncated for column 'VARIABLE_VALUE' at row 1
|
||||||
|
set global init_connect="";
|
||||||
|
create table t0 select * from information_schema.global_status where VARIABLE_NAME='COM_SELECT';
|
||||||
|
SELECT 1;
|
||||||
|
1
|
||||||
|
1
|
||||||
|
select a.VARIABLE_VALUE - b.VARIABLE_VALUE from t0 b, information_schema.global_status a
|
||||||
|
where a.VARIABLE_NAME = b.VARIABLE_NAME;
|
||||||
|
a.VARIABLE_VALUE - b.VARIABLE_VALUE
|
||||||
|
2
|
||||||
|
drop table t0;
|
||||||
End of 5.1 tests.
|
End of 5.1 tests.
|
||||||
|
@ -145,3 +145,9 @@ table_schema = "test" AND table_name = "t1";
|
|||||||
PARTITION_DESCRIPTION
|
PARTITION_DESCRIPTION
|
||||||
10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53
|
10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
drop table if exists t1;
|
||||||
|
create table t1 (f1 int key) partition by key(f1) partitions 2;
|
||||||
|
select create_options from information_schema.tables where table_schema="test";
|
||||||
|
create_options
|
||||||
|
partitioned
|
||||||
|
drop table t1;
|
||||||
|
@ -1677,3 +1677,9 @@ select @@session.sql_log_bin, @@session.binlog_format, @@session.tx_isolation;
|
|||||||
CREATE TABLE t1 ( a INT ) ENGINE=InnoDB;
|
CREATE TABLE t1 ( a INT ) ENGINE=InnoDB;
|
||||||
INSERT INTO t1 VALUES(1);
|
INSERT INTO t1 VALUES(1);
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
CREATE TABLE t1 (a char(50)) ENGINE=InnoDB;
|
||||||
|
CREATE INDEX i1 on t1 (a(3));
|
||||||
|
SELECT * FROM t1 WHERE a = 'abcde';
|
||||||
|
a
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
|
SET @start_value= @@global.log_output;
|
||||||
|
SET @start_general_log= @@global.general_log;
|
||||||
|
SET @start_general_log_file= @@global.general_log_file;
|
||||||
'#--------------------FN_DYNVARS_065_01-------------------------#'
|
'#--------------------FN_DYNVARS_065_01-------------------------#'
|
||||||
SET @@global.log_output = 'NONE';
|
SET @@global.log_output = 'NONE';
|
||||||
'connect (con1,localhost,root,,,,)'
|
'connect (con1,localhost,root,,,,)'
|
||||||
'connection con1'
|
|
||||||
SELECT @@global.log_output;
|
|
||||||
@@global.log_output
|
|
||||||
NONE
|
|
||||||
SET @@global.log_output = 'TABLE,FILE';
|
SET @@global.log_output = 'TABLE,FILE';
|
||||||
'connect (con2,localhost,root,,,,)'
|
'connect (con2,localhost,root,,,,)'
|
||||||
'connection con2'
|
|
||||||
SELECT @@global.log_output;
|
SELECT @@global.log_output;
|
||||||
@@global.log_output
|
@@global.log_output
|
||||||
FILE,TABLE
|
FILE,TABLE
|
||||||
@ -18,7 +16,7 @@ SET @@global.log_output = 'NONE';
|
|||||||
TRUNCATE TABLE mysql.general_log;
|
TRUNCATE TABLE mysql.general_log;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1(a INT);
|
CREATE TABLE t1(a INT);
|
||||||
INSERT INTO t1 value(1);
|
INSERT INTO t1 VALUE(1);
|
||||||
SELECT 'abc';
|
SELECT 'abc';
|
||||||
abc
|
abc
|
||||||
abc
|
abc
|
||||||
@ -29,25 +27,33 @@ count(*)
|
|||||||
SET @@global.log_output = 'TABLE';
|
SET @@global.log_output = 'TABLE';
|
||||||
TRUNCATE TABLE mysql.general_log;
|
TRUNCATE TABLE mysql.general_log;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
create table t1(a int);
|
CREATE TABLE t1(a int);
|
||||||
INSERT INTO t1 value(1);
|
INSERT INTO t1 VALUE(1);
|
||||||
SELECT 'abc';
|
SELECT 'abc';
|
||||||
abc
|
abc
|
||||||
abc
|
abc
|
||||||
SELECT count(*) from mysql.general_log;
|
SELECT count(*)>4 FROM mysql.general_log;
|
||||||
count(*)
|
count(*)>4
|
||||||
5
|
1
|
||||||
'Bug#35371: Changing general_log file is crashing server'
|
SET @@global.general_log = 'OFF';
|
||||||
'SET @@global.general_log_file = @log_file;'
|
FLUSH LOGS;
|
||||||
|
SET @@global.general_log_file = 'MYSQLTEST_VARDIR/run/mytest.log';
|
||||||
|
SET @@global.general_log = 'ON';
|
||||||
SET @@global.log_output = 'FILE';
|
SET @@global.log_output = 'FILE';
|
||||||
TRUNCATE TABLE mysql.general_log;
|
TRUNCATE TABLE mysql.general_log;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
create table t1(a int);
|
CREATE TABLE t1(a INT);
|
||||||
INSERT INTO t1 value(1);
|
INSERT INTO t1 VALUE(1);
|
||||||
SELECT 'abc';
|
SELECT 'abc';
|
||||||
abc
|
abc
|
||||||
abc
|
abc
|
||||||
SELECT count(*) from mysql.general_log;
|
SELECT count(*) FROM mysql.general_log;
|
||||||
count(*)
|
count(*)
|
||||||
0
|
0
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
connection default;
|
||||||
|
SET @@global.general_log= 'OFF';
|
||||||
|
SET @@global.general_log_file= @start_general_log_file;
|
||||||
|
SET @@global.log_output= @start_value;
|
||||||
|
SET @@global.general_log= @start_general_log;
|
||||||
|
SET @@global.general_log= 'ON';
|
||||||
|
@ -2,10 +2,7 @@ SET @start_global_value = @@global.max_allowed_packet;
|
|||||||
SELECT @start_global_value;
|
SELECT @start_global_value;
|
||||||
@start_global_value
|
@start_global_value
|
||||||
1048576
|
1048576
|
||||||
SET @start_session_value = @@session.max_allowed_packet;
|
SET @@global.max_allowed_packet = DEFAULT;
|
||||||
SELECT @start_session_value;
|
|
||||||
@start_session_value
|
|
||||||
1048576
|
|
||||||
'#--------------------FN_DYNVARS_070_01-------------------------#'
|
'#--------------------FN_DYNVARS_070_01-------------------------#'
|
||||||
SET @@global.max_allowed_packet = 1000;
|
SET @@global.max_allowed_packet = 1000;
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -15,7 +12,9 @@ SELECT @@global.max_allowed_packet;
|
|||||||
@@global.max_allowed_packet
|
@@global.max_allowed_packet
|
||||||
1048576
|
1048576
|
||||||
SET @@session.max_allowed_packet = 20000;
|
SET @@session.max_allowed_packet = 20000;
|
||||||
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
SET @@session.max_allowed_packet = DEFAULT;
|
SET @@session.max_allowed_packet = DEFAULT;
|
||||||
|
ERROR 42000: Variable 'max_allowed_packet' doesn't have a default value
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1048576
|
1048576
|
||||||
@ -24,10 +23,6 @@ SET @@global.max_allowed_packet = DEFAULT;
|
|||||||
SELECT @@global.max_allowed_packet = 1048576;
|
SELECT @@global.max_allowed_packet = 1048576;
|
||||||
@@global.max_allowed_packet = 1048576
|
@@global.max_allowed_packet = 1048576
|
||||||
1
|
1
|
||||||
SET @@session.max_allowed_packet = DEFAULT;
|
|
||||||
SELECT @@session.max_allowed_packet = 1048576;
|
|
||||||
@@session.max_allowed_packet = 1048576
|
|
||||||
1
|
|
||||||
'#--------------------FN_DYNVARS_070_03-------------------------#'
|
'#--------------------FN_DYNVARS_070_03-------------------------#'
|
||||||
SET @@global.max_allowed_packet = 1024;
|
SET @@global.max_allowed_packet = 1024;
|
||||||
SELECT @@global.max_allowed_packet;
|
SELECT @@global.max_allowed_packet;
|
||||||
@ -48,25 +43,30 @@ SELECT @@global.max_allowed_packet;
|
|||||||
1073740800
|
1073740800
|
||||||
'#--------------------FN_DYNVARS_070_04-------------------------#'
|
'#--------------------FN_DYNVARS_070_04-------------------------#'
|
||||||
SET @@session.max_allowed_packet = 1024;
|
SET @@session.max_allowed_packet = 1024;
|
||||||
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1024
|
1048576
|
||||||
SET @@session.max_allowed_packet = 1025;
|
SET @@session.max_allowed_packet = 1025;
|
||||||
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1024
|
1048576
|
||||||
SET @@session.max_allowed_packet = 65535;
|
SET @@session.max_allowed_packet = 65535;
|
||||||
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
64512
|
1048576
|
||||||
SET @@session.max_allowed_packet = 1073741824;
|
SET @@session.max_allowed_packet = 1073741824;
|
||||||
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1073741824
|
1048576
|
||||||
SET @@session.max_allowed_packet = 1073741823;
|
SET @@session.max_allowed_packet = 1073741823;
|
||||||
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1073740800
|
1048576
|
||||||
'#------------------FN_DYNVARS_070_05-----------------------#'
|
'#------------------FN_DYNVARS_070_05-----------------------#'
|
||||||
SET @@global.max_allowed_packet = 0;
|
SET @@global.max_allowed_packet = 0;
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -103,37 +103,33 @@ SELECT @@global.max_allowed_packet;
|
|||||||
@@global.max_allowed_packet
|
@@global.max_allowed_packet
|
||||||
1073741824
|
1073741824
|
||||||
SET @@session.max_allowed_packet = 0;
|
SET @@session.max_allowed_packet = 0;
|
||||||
Warnings:
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
Warning 1292 Truncated incorrect max_allowed_packet value: '0'
|
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1024
|
1048576
|
||||||
SET @@session.max_allowed_packet = 1023;
|
SET @@session.max_allowed_packet = 1023;
|
||||||
Warnings:
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
Warning 1292 Truncated incorrect max_allowed_packet value: '1023'
|
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1024
|
1048576
|
||||||
SET @@session.max_allowed_packet = -2;
|
SET @@session.max_allowed_packet = -2;
|
||||||
Warnings:
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
Warning 1292 Truncated incorrect max_allowed_packet value: '0'
|
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1024
|
1048576
|
||||||
SET @@session.max_allowed_packet = 65530.34.;
|
SET @@session.max_allowed_packet = 65530.34.;
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.' at line 1
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.' at line 1
|
||||||
SET @@session.max_allowed_packet = 10737418241;
|
SET @@session.max_allowed_packet = 10737418241;
|
||||||
Warnings:
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
Warning 1292 Truncated incorrect max_allowed_packet value: '10737418241'
|
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1073741824
|
1048576
|
||||||
'Bug # 34837: Errors are not coming on assigning invalid values to variable';
|
'Bug # 34837: Errors are not coming on assigning invalid values to variable';
|
||||||
SET @@session.max_allowed_packet = test;
|
SET @@session.max_allowed_packet = test;
|
||||||
ERROR 42000: Incorrect argument type to variable 'max_allowed_packet'
|
ERROR 42000: Incorrect argument type to variable 'max_allowed_packet'
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1073741824
|
1048576
|
||||||
'#------------------FN_DYNVARS_070_06-----------------------#'
|
'#------------------FN_DYNVARS_070_06-----------------------#'
|
||||||
SELECT @@global.max_allowed_packet = VARIABLE_VALUE
|
SELECT @@global.max_allowed_packet = VARIABLE_VALUE
|
||||||
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
||||||
@ -166,6 +162,7 @@ SELECT @@max_allowed_packet = @@global.max_allowed_packet;
|
|||||||
0
|
0
|
||||||
'#---------------------FN_DYNVARS_070_10----------------------#'
|
'#---------------------FN_DYNVARS_070_10----------------------#'
|
||||||
SET @@max_allowed_packet = 100000;
|
SET @@max_allowed_packet = 100000;
|
||||||
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
SELECT @@max_allowed_packet = @@local.max_allowed_packet;
|
SELECT @@max_allowed_packet = @@local.max_allowed_packet;
|
||||||
@@max_allowed_packet = @@local.max_allowed_packet
|
@@max_allowed_packet = @@local.max_allowed_packet
|
||||||
1
|
1
|
||||||
@ -174,9 +171,10 @@ SELECT @@local.max_allowed_packet = @@session.max_allowed_packet;
|
|||||||
1
|
1
|
||||||
'#---------------------FN_DYNVARS_070_11----------------------#'
|
'#---------------------FN_DYNVARS_070_11----------------------#'
|
||||||
SET max_allowed_packet = 1024;
|
SET max_allowed_packet = 1024;
|
||||||
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
SELECT @@max_allowed_packet;
|
SELECT @@max_allowed_packet;
|
||||||
@@max_allowed_packet
|
@@max_allowed_packet
|
||||||
1024
|
1048576
|
||||||
SELECT local.max_allowed_packet;
|
SELECT local.max_allowed_packet;
|
||||||
ERROR 42S02: Unknown table 'local' in field list
|
ERROR 42S02: Unknown table 'local' in field list
|
||||||
SELECT session.max_allowed_packet;
|
SELECT session.max_allowed_packet;
|
||||||
@ -187,7 +185,6 @@ SET @@global.max_allowed_packet = @start_global_value;
|
|||||||
SELECT @@global.max_allowed_packet;
|
SELECT @@global.max_allowed_packet;
|
||||||
@@global.max_allowed_packet
|
@@global.max_allowed_packet
|
||||||
1048576
|
1048576
|
||||||
SET @@session.max_allowed_packet = @start_session_value;
|
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1048576
|
1048576
|
||||||
|
@ -9,26 +9,17 @@ PRIMARY KEY (id),
|
|||||||
name BLOB
|
name BLOB
|
||||||
);
|
);
|
||||||
'#--------------------FN_DYNVARS_070_01-------------------------#'
|
'#--------------------FN_DYNVARS_070_01-------------------------#'
|
||||||
## Setting value of max_allowed packet and net_buffer_length to 1024 ##
|
## Setting value of max_allowed packet and net_buffer_length to 1024 ##
|
||||||
SET @@session.max_allowed_packet = 1024;
|
SET @@session.max_allowed_packet = 1024;
|
||||||
SET @@session.net_buffer_length = 1024;
|
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
@@session.max_allowed_packet
|
@@session.max_allowed_packet
|
||||||
1024
|
1048576
|
||||||
|
SET @@session.net_buffer_length = 1024;
|
||||||
|
ERROR HY000: SESSION variable 'net_buffer_length' is read-only. Use SET GLOBAL to assign the value
|
||||||
SELECT @@session.net_buffer_length;
|
SELECT @@session.net_buffer_length;
|
||||||
@@session.net_buffer_length
|
@@session.net_buffer_length
|
||||||
1024
|
16384
|
||||||
## Inserting and fetching data of length greater than 1024 ##
|
|
||||||
INSERT into t1(name) values("aaassssssssddddddddffffffgggggggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
|
|
||||||
SELECT length("aaaaaasssssssssssdddddddfffffgggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk") as len;
|
|
||||||
len
|
|
||||||
1470
|
|
||||||
## Verifying record in table t1 ##
|
|
||||||
SELECT * from t1;
|
|
||||||
id name
|
|
||||||
1 aaassssssssddddddddffffffgggggggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
|
|
||||||
'Bug#35381: Error is not coming on inserting and fetching data of length'
|
|
||||||
'greater than max_allowed_packet size at session level';
|
|
||||||
'#--------------------FN_DYNVARS_070_02-------------------------#'
|
'#--------------------FN_DYNVARS_070_02-------------------------#'
|
||||||
## Setting value of max_allowed packet and net_buffer_length to 1024 ##
|
## Setting value of max_allowed packet and net_buffer_length to 1024 ##
|
||||||
SET @@global.max_allowed_packet = 1024;
|
SET @@global.max_allowed_packet = 1024;
|
||||||
|
@ -378,29 +378,6 @@ where 0=1;
|
|||||||
delete t1, t2 from t2,t1
|
delete t1, t2 from t2,t1
|
||||||
where t1.id1=t2.id2 and 0=1;
|
where t1.id1=t2.id2 and 0=1;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
create table t1 ( a int not null, b int not null) ;
|
|
||||||
alter table t1 add index i1(a);
|
|
||||||
delete from t1 where a > 2000000;
|
|
||||||
create table t2 like t1;
|
|
||||||
insert into t2 select * from t1;
|
|
||||||
select 't2 rows before small delete', count(*) from t1;
|
|
||||||
t2 rows before small delete count(*)
|
|
||||||
t2 rows before small delete 2000000
|
|
||||||
delete t1,t2 from t1,t2 where t1.b=t2.a and t1.a < 2;
|
|
||||||
select 't2 rows after small delete', count(*) from t2;
|
|
||||||
t2 rows after small delete count(*)
|
|
||||||
t2 rows after small delete 1999999
|
|
||||||
select 't1 rows after small delete', count(*) from t1;
|
|
||||||
t1 rows after small delete count(*)
|
|
||||||
t1 rows after small delete 1999999
|
|
||||||
delete t1,t2 from t1,t2 where t1.b=t2.a and t1.a < 100*1000;
|
|
||||||
select 't2 rows after big delete', count(*) from t2;
|
|
||||||
t2 rows after big delete count(*)
|
|
||||||
t2 rows after big delete 1900001
|
|
||||||
select 't1 rows after big delete', count(*) from t1;
|
|
||||||
t1 rows after big delete count(*)
|
|
||||||
t1 rows after big delete 1900001
|
|
||||||
drop table t1,t2;
|
|
||||||
CREATE TABLE t1 ( a int );
|
CREATE TABLE t1 ( a int );
|
||||||
CREATE TABLE t2 ( a int );
|
CREATE TABLE t2 ( a int );
|
||||||
DELETE t1 FROM t1, t2 AS t3;
|
DELETE t1 FROM t1, t2 AS t3;
|
||||||
|
25
mysql-test/r/multi_update2.result
Normal file
25
mysql-test/r/multi_update2.result
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
DROP TABLE IF EXISTS t1,t2;
|
||||||
|
CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL) ;
|
||||||
|
# The protocolling of many inserts into t1 is suppressed.
|
||||||
|
ALTER TABLE t1 ADD INDEX i1(a);
|
||||||
|
DELETE FROM t1 WHERE a > 2000000;
|
||||||
|
CREATE TABLE t2 LIKE t1;
|
||||||
|
INSERT INTO t2 SELECT * FROM t1;
|
||||||
|
SELECT 't2 rows before small delete', COUNT(*) FROM t1;
|
||||||
|
t2 rows before small delete COUNT(*)
|
||||||
|
t2 rows before small delete 2000000
|
||||||
|
DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 2;
|
||||||
|
SELECT 't2 rows after small delete', COUNT(*) FROM t2;
|
||||||
|
t2 rows after small delete COUNT(*)
|
||||||
|
t2 rows after small delete 1999999
|
||||||
|
SELECT 't1 rows after small delete', COUNT(*) FROM t1;
|
||||||
|
t1 rows after small delete COUNT(*)
|
||||||
|
t1 rows after small delete 1999999
|
||||||
|
DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 100*1000;
|
||||||
|
SELECT 't2 rows after big delete', COUNT(*) FROM t2;
|
||||||
|
t2 rows after big delete COUNT(*)
|
||||||
|
t2 rows after big delete 1900001
|
||||||
|
SELECT 't1 rows after big delete', COUNT(*) FROM t1;
|
||||||
|
t1 rows after big delete COUNT(*)
|
||||||
|
t1 rows after big delete 1900001
|
||||||
|
DROP TABLE t1,t2;
|
@ -9,7 +9,7 @@ SET timestamp=1000000000;
|
|||||||
#
|
#
|
||||||
# We need big packets.
|
# We need big packets.
|
||||||
#
|
#
|
||||||
SET @@session.max_allowed_packet= 1024*1024*1024;
|
SET @@global.max_allowed_packet= 1024*1024*1024;
|
||||||
#
|
#
|
||||||
# Delete all existing binary logs.
|
# Delete all existing binary logs.
|
||||||
#
|
#
|
||||||
|
@ -101,6 +101,19 @@ drop view v_bug25347;
|
|||||||
drop table t_bug25347;
|
drop table t_bug25347;
|
||||||
drop database d_bug25347;
|
drop database d_bug25347;
|
||||||
use test;
|
use test;
|
||||||
|
create view v1 as select * from information_schema.routines;
|
||||||
|
check table v1, information_schema.routines;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.v1 check status OK
|
||||||
|
information_schema.routines check note The storage engine for the table doesn't support check
|
||||||
|
drop view v1;
|
||||||
|
CREATE TABLE t1(a INT);
|
||||||
|
CREATE TABLE t2(a INT);
|
||||||
|
test.t1
|
||||||
|
Error : Incorrect information in file: './test/t1.frm'
|
||||||
|
error : Corrupt
|
||||||
|
test.t2 OK
|
||||||
|
DROP TABLE t1, t2;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
create view v1 as select * from t1;
|
create view v1 as select * from t1;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
SET @start_global_value = @@global.net_buffer_length;
|
SET @start_global_value = @@global.net_buffer_length;
|
||||||
SET @start_session_value = @@session.net_buffer_length;
|
SET @@global.net_buffer_length = DEFAULT;
|
||||||
'#--------------------FN_DYNVARS_109_01-------------------------#'
|
'#--------------------FN_DYNVARS_109_01-------------------------#'
|
||||||
SET @@global.net_buffer_length = 10000;
|
SET @@global.net_buffer_length = 10000;
|
||||||
SET @@global.net_buffer_length = DEFAULT;
|
SET @@global.net_buffer_length = DEFAULT;
|
||||||
@ -7,7 +7,9 @@ SELECT @@global.net_buffer_length;
|
|||||||
@@global.net_buffer_length
|
@@global.net_buffer_length
|
||||||
16384
|
16384
|
||||||
SET @@session.net_buffer_length = 20000;
|
SET @@session.net_buffer_length = 20000;
|
||||||
|
ERROR HY000: SESSION variable 'net_buffer_length' is read-only. Use SET GLOBAL to assign the value
|
||||||
SET @@session.net_buffer_length = DEFAULT;
|
SET @@session.net_buffer_length = DEFAULT;
|
||||||
|
ERROR 42000: Variable 'net_buffer_length' doesn't have a default value
|
||||||
SELECT @@session.net_buffer_length;
|
SELECT @@session.net_buffer_length;
|
||||||
@@session.net_buffer_length
|
@@session.net_buffer_length
|
||||||
16384
|
16384
|
||||||
@ -16,10 +18,6 @@ SET @@global.net_buffer_length = DEFAULT;
|
|||||||
SELECT @@global.net_buffer_length = 16384;
|
SELECT @@global.net_buffer_length = 16384;
|
||||||
@@global.net_buffer_length = 16384
|
@@global.net_buffer_length = 16384
|
||||||
1
|
1
|
||||||
SET @@session.net_buffer_length = DEFAULT;
|
|
||||||
SELECT @@session.net_buffer_length = 16384;
|
|
||||||
@@session.net_buffer_length = 16384
|
|
||||||
1
|
|
||||||
'#--------------------FN_DYNVARS_109_03-------------------------#'
|
'#--------------------FN_DYNVARS_109_03-------------------------#'
|
||||||
SET @@global.net_buffer_length = 1024;
|
SET @@global.net_buffer_length = 1024;
|
||||||
SELECT @@global.net_buffer_length;
|
SELECT @@global.net_buffer_length;
|
||||||
@ -43,27 +41,6 @@ SELECT @@global.net_buffer_length;
|
|||||||
64512
|
64512
|
||||||
'Bug# 34877: Invalid Values are coming in variable on assigning valid values';
|
'Bug# 34877: Invalid Values are coming in variable on assigning valid values';
|
||||||
'#--------------------FN_DYNVARS_109_04-------------------------#'
|
'#--------------------FN_DYNVARS_109_04-------------------------#'
|
||||||
SET @@session.net_buffer_length = 1024;
|
|
||||||
SELECT @@session.net_buffer_length;
|
|
||||||
@@session.net_buffer_length
|
|
||||||
1024
|
|
||||||
SET @@session.net_buffer_length = 1025;
|
|
||||||
SELECT @@session.net_buffer_length;
|
|
||||||
@@session.net_buffer_length
|
|
||||||
1024
|
|
||||||
SET @@session.net_buffer_length = 1048576;
|
|
||||||
SELECT @@session.net_buffer_length;
|
|
||||||
@@session.net_buffer_length
|
|
||||||
1048576
|
|
||||||
SET @@session.net_buffer_length = 1048575;
|
|
||||||
SELECT @@session.net_buffer_length;
|
|
||||||
@@session.net_buffer_length
|
|
||||||
1047552
|
|
||||||
SET @@session.net_buffer_length = 65535;
|
|
||||||
SELECT @@session.net_buffer_length;
|
|
||||||
@@session.net_buffer_length
|
|
||||||
64512
|
|
||||||
'Bug# 34877: Invalid Values are coming in variable on assigning valid values';
|
|
||||||
'#------------------FN_DYNVARS_109_05-----------------------#'
|
'#------------------FN_DYNVARS_109_05-----------------------#'
|
||||||
SET @@global.net_buffer_length = 0;
|
SET @@global.net_buffer_length = 0;
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -105,42 +82,12 @@ ERROR 42000: Incorrect argument type to variable 'net_buffer_length'
|
|||||||
SELECT @@global.net_buffer_length;
|
SELECT @@global.net_buffer_length;
|
||||||
@@global.net_buffer_length
|
@@global.net_buffer_length
|
||||||
1048576
|
1048576
|
||||||
SET @@session.net_buffer_length = 0;
|
|
||||||
Warnings:
|
|
||||||
Warning 1292 Truncated incorrect net_buffer_length value: '0'
|
|
||||||
SELECT @@session.net_buffer_length;
|
|
||||||
@@session.net_buffer_length
|
|
||||||
1024
|
|
||||||
SET @@session.net_buffer_length = -2;
|
|
||||||
Warnings:
|
|
||||||
Warning 1292 Truncated incorrect net_buffer_length value: '0'
|
|
||||||
SELECT @@session.net_buffer_length;
|
|
||||||
@@session.net_buffer_length
|
|
||||||
1024
|
|
||||||
SET @@session.net_buffer_length = 1048577;
|
|
||||||
Warnings:
|
|
||||||
Warning 1292 Truncated incorrect net_buffer_length value: '1048577'
|
|
||||||
SELECT @@session.net_buffer_length;
|
|
||||||
@@session.net_buffer_length
|
|
||||||
1048576
|
|
||||||
SET @@session.net_buffer_length = 1048576002;
|
|
||||||
Warnings:
|
|
||||||
Warning 1292 Truncated incorrect net_buffer_length value: '1048576002'
|
|
||||||
SELECT @@session.net_buffer_length;
|
|
||||||
@@session.net_buffer_length
|
|
||||||
1048576
|
|
||||||
SET @@session.net_buffer_length = 65530.34.;
|
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.' at line 1
|
|
||||||
SET @@session.net_buffer_length = 65550;
|
|
||||||
SELECT @@session.net_buffer_length;
|
|
||||||
@@session.net_buffer_length
|
|
||||||
65536
|
|
||||||
'Bug # 34837: Errors are not coming on assigning invalid values to variable';
|
'Bug # 34837: Errors are not coming on assigning invalid values to variable';
|
||||||
SET @@session.net_buffer_length = test;
|
SET @@session.net_buffer_length = test;
|
||||||
ERROR 42000: Incorrect argument type to variable 'net_buffer_length'
|
ERROR 42000: Incorrect argument type to variable 'net_buffer_length'
|
||||||
SELECT @@session.net_buffer_length;
|
SELECT @@session.net_buffer_length;
|
||||||
@@session.net_buffer_length
|
@@session.net_buffer_length
|
||||||
65536
|
16384
|
||||||
'#------------------FN_DYNVARS_109_06-----------------------#'
|
'#------------------FN_DYNVARS_109_06-----------------------#'
|
||||||
SELECT @@global.net_buffer_length = VARIABLE_VALUE
|
SELECT @@global.net_buffer_length = VARIABLE_VALUE
|
||||||
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
||||||
@ -172,18 +119,10 @@ SELECT @@net_buffer_length = @@global.net_buffer_length;
|
|||||||
@@net_buffer_length = @@global.net_buffer_length
|
@@net_buffer_length = @@global.net_buffer_length
|
||||||
0
|
0
|
||||||
'#---------------------FN_DYNVARS_109_10----------------------#'
|
'#---------------------FN_DYNVARS_109_10----------------------#'
|
||||||
SET @@net_buffer_length = 100000;
|
|
||||||
SELECT @@net_buffer_length = @@local.net_buffer_length;
|
|
||||||
@@net_buffer_length = @@local.net_buffer_length
|
|
||||||
1
|
|
||||||
SELECT @@local.net_buffer_length = @@session.net_buffer_length;
|
|
||||||
@@local.net_buffer_length = @@session.net_buffer_length
|
|
||||||
1
|
|
||||||
'#---------------------FN_DYNVARS_109_11----------------------#'
|
'#---------------------FN_DYNVARS_109_11----------------------#'
|
||||||
SET net_buffer_length = 1024;
|
|
||||||
SELECT @@net_buffer_length;
|
SELECT @@net_buffer_length;
|
||||||
@@net_buffer_length
|
@@net_buffer_length
|
||||||
1024
|
16384
|
||||||
SELECT local.net_buffer_length;
|
SELECT local.net_buffer_length;
|
||||||
ERROR 42S02: Unknown table 'local' in field list
|
ERROR 42S02: Unknown table 'local' in field list
|
||||||
SELECT session.net_buffer_length;
|
SELECT session.net_buffer_length;
|
||||||
@ -191,4 +130,3 @@ ERROR 42S02: Unknown table 'session' in field list
|
|||||||
SELECT net_buffer_length = @@session.net_buffer_length;
|
SELECT net_buffer_length = @@session.net_buffer_length;
|
||||||
ERROR 42S22: Unknown column 'net_buffer_length' in 'field list'
|
ERROR 42S22: Unknown column 'net_buffer_length' in 'field list'
|
||||||
SET @@global.net_buffer_length = @start_global_value;
|
SET @@global.net_buffer_length = @start_global_value;
|
||||||
SET @@session.net_buffer_length = @start_session_value;
|
|
||||||
|
@ -73,11 +73,10 @@ variable_name LIKE 'SSL_CALLBACK_CACHE_HITS';
|
|||||||
END$$
|
END$$
|
||||||
SELECT variable_name, variable_value FROM thread_status;
|
SELECT variable_name, variable_value FROM thread_status;
|
||||||
variable_name variable_value
|
variable_name variable_value
|
||||||
SSL_ACCEPTS 0
|
SSL_ACCEPTS #
|
||||||
SSL_CALLBACK_CACHE_HITS 0
|
SSL_CALLBACK_CACHE_HITS #
|
||||||
DROP TABLE thread_status;
|
DROP TABLE thread_status;
|
||||||
SET GLOBAL event_scheduler=0;
|
SET GLOBAL event_scheduler=0;
|
||||||
End of 5.1 tests
|
|
||||||
SHOW STATUS LIKE 'Ssl_cipher';
|
SHOW STATUS LIKE 'Ssl_cipher';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Ssl_cipher AES128-SHA
|
Ssl_cipher AES128-SHA
|
||||||
@ -192,3 +191,15 @@ UNLOCK TABLES;
|
|||||||
SSL error: Unable to get private key from 'MYSQL_TEST_DIR/std_data/client-cert.pem'
|
SSL error: Unable to get private key from 'MYSQL_TEST_DIR/std_data/client-cert.pem'
|
||||||
mysqldump: Got error: 2026: SSL connection error when trying to connect
|
mysqldump: Got error: 2026: SSL connection error when trying to connect
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
Variable_name Value
|
||||||
|
Ssl_cipher DHE-RSA-AES256-SHA
|
||||||
|
Variable_name Value
|
||||||
|
Ssl_cipher EDH-RSA-DES-CBC3-SHA
|
||||||
|
Variable_name Value
|
||||||
|
Ssl_cipher EDH-RSA-DES-CBC-SHA
|
||||||
|
Variable_name Value
|
||||||
|
Ssl_cipher RC4-SHA
|
||||||
|
select 'is still running; no cipher request crashed the server' as result from dual;
|
||||||
|
result
|
||||||
|
is still running; no cipher request crashed the server
|
||||||
|
End of 5.1 tests
|
||||||
|
@ -1,32 +1,22 @@
|
|||||||
set global max_allowed_packet=100;
|
set global max_allowed_packet=100;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect max_allowed_packet value: '100'
|
Warning 1292 Truncated incorrect max_allowed_packet value: '100'
|
||||||
set max_allowed_packet=100;
|
|
||||||
Warnings:
|
|
||||||
Warning 1292 Truncated incorrect max_allowed_packet value: '100'
|
|
||||||
set global net_buffer_length=100;
|
set global net_buffer_length=100;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect net_buffer_length value: '100'
|
Warning 1292 Truncated incorrect net_buffer_length value: '100'
|
||||||
set net_buffer_length=100;
|
|
||||||
Warnings:
|
|
||||||
Warning 1292 Truncated incorrect net_buffer_length value: '100'
|
|
||||||
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
||||||
len
|
len
|
||||||
1024
|
1024
|
||||||
select repeat('a',2000);
|
select repeat('a',2000);
|
||||||
repeat('a',2000)
|
repeat('a',2000)
|
||||||
NULL
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
Warnings:
|
|
||||||
Warning 1301 Result of repeat() was larger than max_allowed_packet (1024) - truncated
|
|
||||||
select @@net_buffer_length, @@max_allowed_packet;
|
select @@net_buffer_length, @@max_allowed_packet;
|
||||||
@@net_buffer_length @@max_allowed_packet
|
@@net_buffer_length @@max_allowed_packet
|
||||||
1024 1024
|
1024 1024
|
||||||
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
||||||
ERROR 08S01: Got a packet bigger than 'max_allowed_packet' bytes
|
ERROR 08S01: Got a packet bigger than 'max_allowed_packet' bytes
|
||||||
set global max_allowed_packet=default;
|
set global max_allowed_packet=default;
|
||||||
set max_allowed_packet=default;
|
|
||||||
set global net_buffer_length=default;
|
set global net_buffer_length=default;
|
||||||
set net_buffer_length=default;
|
|
||||||
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
||||||
len
|
len
|
||||||
100
|
100
|
||||||
|
@ -1,5 +1,17 @@
|
|||||||
SET @old_general_log= @@global.general_log;
|
SET @old_general_log= @@global.general_log;
|
||||||
drop table if exists t1, t2;
|
drop table if exists t1, t2;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
pk INT NOT NULL AUTO_INCREMENT,
|
||||||
|
PRIMARY KEY (pk)
|
||||||
|
)
|
||||||
|
/*!50100 PARTITION BY HASH (pk)
|
||||||
|
PARTITIONS 2 */;
|
||||||
|
INSERT INTO t1 VALUES (NULL);
|
||||||
|
INSERT INTO t1 VALUES (NULL);
|
||||||
|
INSERT INTO t1 VALUES (NULL);
|
||||||
|
SELECT * FROM t1 WHERE pk < 0 ORDER BY pk;
|
||||||
|
pk
|
||||||
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (a INT NOT NULL, KEY(a))
|
CREATE TABLE t1 (a INT NOT NULL, KEY(a))
|
||||||
PARTITION BY RANGE(a)
|
PARTITION BY RANGE(a)
|
||||||
(PARTITION p1 VALUES LESS THAN (200), PARTITION pmax VALUES LESS THAN MAXVALUE);
|
(PARTITION p1 VALUES LESS THAN (200), PARTITION pmax VALUES LESS THAN MAXVALUE);
|
||||||
|
@ -1,3 +1,25 @@
|
|||||||
|
drop table if exists t1;
|
||||||
|
CREATE TABLE t1 (id INT PRIMARY KEY, data INT) ENGINE = InnoDB
|
||||||
|
PARTITION BY RANGE(id) (
|
||||||
|
PARTITION p0 VALUES LESS THAN (5),
|
||||||
|
PARTITION p1 VALUES LESS THAN (10),
|
||||||
|
PARTITION p2 VALUES LESS THAN MAXVALUE
|
||||||
|
);
|
||||||
|
INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4), (5,5), (6,6), (7,7), (8,8),
|
||||||
|
(9,9), (10,10), (11,11);
|
||||||
|
SET @old_tx_isolation := @@session.tx_isolation;
|
||||||
|
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||||
|
SET autocommit = 0;
|
||||||
|
UPDATE t1 SET DATA = data*2 WHERE id = 3;
|
||||||
|
SHOW ENGINE InnoDB STATUS;
|
||||||
|
Type Name Status
|
||||||
|
InnoDB 2 lock struct(s) 1 row lock(s)
|
||||||
|
UPDATE t1 SET data = data*2 WHERE data = 2;
|
||||||
|
SHOW ENGINE InnoDB STATUS;
|
||||||
|
Type Name Status
|
||||||
|
InnoDB 6 lock struct(s) 2 row lock(s)
|
||||||
|
SET @@session.tx_isolation = @old_tx_isolation;
|
||||||
|
DROP TABLE t1;
|
||||||
# Bug#37721, test of ORDER BY on PK and WHERE on INDEX
|
# Bug#37721, test of ORDER BY on PK and WHERE on INDEX
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
a INT,
|
a INT,
|
||||||
|
6
mysql-test/r/perror-win.result
Normal file
6
mysql-test/r/perror-win.result
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
MySQL error code 150: Foreign key constraint is incorrectly formed
|
||||||
|
Win32 error code 150: System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed.
|
||||||
|
OS error code 23: Too many open files in system
|
||||||
|
Win32 error code 23: Data error (cyclic redundancy check).
|
||||||
|
Win32 error code 1062: The service has not been started.
|
||||||
|
Illegal error code: 30000
|
@ -100,19 +100,19 @@ drop table t1;
|
|||||||
show variables like "wait_timeout%";
|
show variables like "wait_timeout%";
|
||||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
def VARIABLES VARIABLE_NAME Variable_name 253 64 12 N 1 0 8
|
def VARIABLES VARIABLE_NAME Variable_name 253 64 12 N 1 0 8
|
||||||
def VARIABLES VARIABLE_VALUE Value 253 20480 5 Y 0 0 8
|
def VARIABLES VARIABLE_VALUE Value 253 1024 5 Y 0 0 8
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
wait_timeout 28800
|
wait_timeout 28800
|
||||||
show variables like "WAIT_timeout%";
|
show variables like "WAIT_timeout%";
|
||||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
def VARIABLES VARIABLE_NAME Variable_name 253 64 12 N 1 0 8
|
def VARIABLES VARIABLE_NAME Variable_name 253 64 12 N 1 0 8
|
||||||
def VARIABLES VARIABLE_VALUE Value 253 20480 5 Y 0 0 8
|
def VARIABLES VARIABLE_VALUE Value 253 1024 5 Y 0 0 8
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
wait_timeout 28800
|
wait_timeout 28800
|
||||||
show variables like "this_doesn't_exists%";
|
show variables like "this_doesn't_exists%";
|
||||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
def VARIABLES VARIABLE_NAME Variable_name 253 64 0 N 1 0 8
|
def VARIABLES VARIABLE_NAME Variable_name 253 64 0 N 1 0 8
|
||||||
def VARIABLES VARIABLE_VALUE Value 253 20480 0 Y 0 0 8
|
def VARIABLES VARIABLE_VALUE Value 253 1024 0 Y 0 0 8
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
show table status from test like "this_doesn't_exists%";
|
show table status from test like "this_doesn't_exists%";
|
||||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
@ -130,7 +130,7 @@ def TABLES AUTO_INCREMENT Auto_increment 8 21 0 Y 32800 0 63
|
|||||||
def TABLES CREATE_TIME Create_time 12 19 0 Y 128 0 63
|
def TABLES CREATE_TIME Create_time 12 19 0 Y 128 0 63
|
||||||
def TABLES UPDATE_TIME Update_time 12 19 0 Y 128 0 63
|
def TABLES UPDATE_TIME Update_time 12 19 0 Y 128 0 63
|
||||||
def TABLES CHECK_TIME Check_time 12 19 0 Y 128 0 63
|
def TABLES CHECK_TIME Check_time 12 19 0 Y 128 0 63
|
||||||
def TABLES TABLE_COLLATION Collation 253 64 0 Y 0 0 8
|
def TABLES TABLE_COLLATION Collation 253 32 0 Y 0 0 8
|
||||||
def TABLES CHECKSUM Checksum 8 21 0 Y 32800 0 63
|
def TABLES CHECKSUM Checksum 8 21 0 Y 32800 0 63
|
||||||
def TABLES CREATE_OPTIONS Create_options 253 255 0 Y 0 0 8
|
def TABLES CREATE_OPTIONS Create_options 253 255 0 Y 0 0 8
|
||||||
def TABLES TABLE_COMMENT Comment 253 80 0 N 1 0 8
|
def TABLES TABLE_COMMENT Comment 253 80 0 N 1 0 8
|
||||||
@ -859,17 +859,17 @@ set names utf8;
|
|||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
SHOW CHARACTER SET LIKE 'utf8';
|
SHOW CHARACTER SET LIKE 'utf8';
|
||||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
def CHARACTER_SETS CHARACTER_SET_NAME Charset 253 192 4 N 1 0 33
|
def CHARACTER_SETS CHARACTER_SET_NAME Charset 253 96 4 N 1 0 33
|
||||||
def CHARACTER_SETS DESCRIPTION Description 253 180 13 N 1 0 33
|
def CHARACTER_SETS DESCRIPTION Description 253 180 13 N 1 0 33
|
||||||
def CHARACTER_SETS DEFAULT_COLLATE_NAME Default collation 253 192 15 N 1 0 33
|
def CHARACTER_SETS DEFAULT_COLLATE_NAME Default collation 253 96 15 N 1 0 33
|
||||||
def CHARACTER_SETS MAXLEN Maxlen 8 3 1 N 32769 0 63
|
def CHARACTER_SETS MAXLEN Maxlen 8 3 1 N 32769 0 63
|
||||||
Charset Description Default collation Maxlen
|
Charset Description Default collation Maxlen
|
||||||
utf8 UTF-8 Unicode utf8_general_ci 3
|
utf8 UTF-8 Unicode utf8_general_ci 3
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
SHOW COLLATION LIKE 'latin1_bin';
|
SHOW COLLATION LIKE 'latin1_bin';
|
||||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
def COLLATIONS COLLATION_NAME Collation 253 192 10 N 1 0 33
|
def COLLATIONS COLLATION_NAME Collation 253 96 10 N 1 0 33
|
||||||
def COLLATIONS CHARACTER_SET_NAME Charset 253 192 6 N 1 0 33
|
def COLLATIONS CHARACTER_SET_NAME Charset 253 96 6 N 1 0 33
|
||||||
def COLLATIONS ID Id 8 11 2 N 32769 0 63
|
def COLLATIONS ID Id 8 11 2 N 32769 0 63
|
||||||
def COLLATIONS IS_DEFAULT Default 253 9 0 N 1 0 33
|
def COLLATIONS IS_DEFAULT Default 253 9 0 N 1 0 33
|
||||||
def COLLATIONS IS_COMPILED Compiled 253 9 3 N 1 0 33
|
def COLLATIONS IS_COMPILED Compiled 253 9 3 N 1 0 33
|
||||||
@ -936,7 +936,7 @@ def TABLES TABLE_NAME TABLE_NAME 253 192 2 N 1 0 33
|
|||||||
def TABLES TABLE_TYPE TABLE_TYPE 253 192 10 N 1 0 33
|
def TABLES TABLE_TYPE TABLE_TYPE 253 192 10 N 1 0 33
|
||||||
def TABLES ENGINE ENGINE 253 192 6 Y 0 0 33
|
def TABLES ENGINE ENGINE 253 192 6 Y 0 0 33
|
||||||
def TABLES ROW_FORMAT ROW_FORMAT 253 30 5 Y 0 0 33
|
def TABLES ROW_FORMAT ROW_FORMAT 253 30 5 Y 0 0 33
|
||||||
def TABLES TABLE_COLLATION TABLE_COLLATION 253 192 17 Y 0 0 33
|
def TABLES TABLE_COLLATION TABLE_COLLATION 253 96 17 Y 0 0 33
|
||||||
def TABLES CREATE_OPTIONS CREATE_OPTIONS 253 765 0 Y 0 0 33
|
def TABLES CREATE_OPTIONS CREATE_OPTIONS 253 765 0 Y 0 0 33
|
||||||
def TABLES TABLE_COMMENT TABLE_COMMENT 253 240 0 N 1 0 33
|
def TABLES TABLE_COMMENT TABLE_COMMENT 253 240 0 N 1 0 33
|
||||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE ROW_FORMAT TABLE_COLLATION CREATE_OPTIONS TABLE_COMMENT
|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE ROW_FORMAT TABLE_COLLATION CREATE_OPTIONS TABLE_COMMENT
|
||||||
@ -967,8 +967,8 @@ def COLUMNS COLUMN_NAME COLUMN_NAME 253 192 1 N 1 0 33
|
|||||||
def COLUMNS COLUMN_DEFAULT COLUMN_DEFAULT 252 589815 0 Y 16 0 33
|
def COLUMNS COLUMN_DEFAULT COLUMN_DEFAULT 252 589815 0 Y 16 0 33
|
||||||
def COLUMNS IS_NULLABLE IS_NULLABLE 253 9 2 N 1 0 33
|
def COLUMNS IS_NULLABLE IS_NULLABLE 253 9 2 N 1 0 33
|
||||||
def COLUMNS DATA_TYPE DATA_TYPE 253 192 3 N 1 0 33
|
def COLUMNS DATA_TYPE DATA_TYPE 253 192 3 N 1 0 33
|
||||||
def COLUMNS CHARACTER_SET_NAME CHARACTER_SET_NAME 253 192 0 Y 0 0 33
|
def COLUMNS CHARACTER_SET_NAME CHARACTER_SET_NAME 253 96 0 Y 0 0 33
|
||||||
def COLUMNS COLLATION_NAME COLLATION_NAME 253 192 0 Y 0 0 33
|
def COLUMNS COLLATION_NAME COLLATION_NAME 253 96 0 Y 0 0 33
|
||||||
def COLUMNS COLUMN_TYPE COLUMN_TYPE 252 589815 7 N 17 0 33
|
def COLUMNS COLUMN_TYPE COLUMN_TYPE 252 589815 7 N 17 0 33
|
||||||
def COLUMNS COLUMN_KEY COLUMN_KEY 253 9 3 N 1 0 33
|
def COLUMNS COLUMN_KEY COLUMN_KEY 253 9 3 N 1 0 33
|
||||||
def COLUMNS EXTRA EXTRA 253 81 0 N 1 0 33
|
def COLUMNS EXTRA EXTRA 253 81 0 N 1 0 33
|
||||||
@ -1126,7 +1126,7 @@ def ROUTINES IS_DETERMINISTIC IS_DETERMINISTIC 253 9 2 N 1 0 33
|
|||||||
def ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33
|
def ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33
|
||||||
def ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33
|
def ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33
|
||||||
def ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
|
def ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
|
||||||
def ROUTINES SQL_MODE SQL_MODE 252 589815 0 N 17 0 33
|
def ROUTINES SQL_MODE SQL_MODE 253 24576 0 N 1 0 33
|
||||||
def ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 253 192 0 N 1 0 33
|
def ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 253 192 0 N 1 0 33
|
||||||
def ROUTINES DEFINER DEFINER 253 231 14 N 1 0 33
|
def ROUTINES DEFINER DEFINER 253 231 14 N 1 0 33
|
||||||
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
|
||||||
@ -1181,7 +1181,7 @@ def ROUTINES IS_DETERMINISTIC IS_DETERMINISTIC 253 9 2 N 1 0 33
|
|||||||
def ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33
|
def ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33
|
||||||
def ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33
|
def ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33
|
||||||
def ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
|
def ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
|
||||||
def ROUTINES SQL_MODE SQL_MODE 252 589815 0 N 17 0 33
|
def ROUTINES SQL_MODE SQL_MODE 253 24576 0 N 1 0 33
|
||||||
def ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 253 192 0 N 1 0 33
|
def ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 253 192 0 N 1 0 33
|
||||||
def ROUTINES DEFINER DEFINER 253 231 14 N 1 0 33
|
def ROUTINES DEFINER DEFINER 253 231 14 N 1 0 33
|
||||||
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
|
||||||
|
@ -4448,4 +4448,34 @@ SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT
|
|||||||
a incorrect
|
a incorrect
|
||||||
1 1
|
1 1
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
CREATE TABLE t1 (id int);
|
||||||
|
CREATE TABLE t2 (id int, c int);
|
||||||
|
INSERT INTO t1 (id) VALUES (1);
|
||||||
|
INSERT INTO t2 (id) VALUES (1);
|
||||||
|
INSERT INTO t1 (id) VALUES (1);
|
||||||
|
INSERT INTO t2 (id) VALUES (1);
|
||||||
|
CREATE VIEW v1 AS
|
||||||
|
SELECT t2.c AS c FROM t1, t2
|
||||||
|
WHERE t1.id=t2.id AND 1 IN (SELECT id FROM t1) WITH CHECK OPTION;
|
||||||
|
UPDATE v1 SET c=1;
|
||||||
|
CREATE VIEW v2 (a,b) AS
|
||||||
|
SELECT t2.id, t2.c AS c FROM t1, t2
|
||||||
|
WHERE t1.id=t2.id AND 1 IN (SELECT id FROM t1) WITH CHECK OPTION;
|
||||||
|
INSERT INTO v2(a,b) VALUES (2,2);
|
||||||
|
ERROR HY000: CHECK OPTION failed 'test.v2'
|
||||||
|
INSERT INTO v2(a,b) VALUES (1,2);
|
||||||
|
SELECT * FROM v1;
|
||||||
|
c
|
||||||
|
1
|
||||||
|
1
|
||||||
|
1
|
||||||
|
1
|
||||||
|
2
|
||||||
|
2
|
||||||
|
CREATE VIEW v3 AS
|
||||||
|
SELECT t2.c AS c FROM t2
|
||||||
|
WHERE 1 IN (SELECT id FROM t1) WITH CHECK OPTION;
|
||||||
|
DELETE FROM v3;
|
||||||
|
DROP VIEW v1,v2,v3;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
End of 5.1 tests.
|
End of 5.1 tests.
|
||||||
|
@ -148,16 +148,16 @@ DROP TABLE t1;
|
|||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
CREATE TABLE t1(a INT)
|
CREATE TABLE t1(a INT)
|
||||||
INDEX DIRECTORY='MYSQLD_DATADIR/mysql';
|
INDEX DIRECTORY='MYSQLD_DATADIR/mysql';
|
||||||
ERROR HY000: Incorrect arguments to INDEX DIRECTORY
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1(a INT)
|
CREATE TABLE t1(a INT)
|
||||||
DATA DIRECTORY='MYSQLD_DATADIR/test';
|
DATA DIRECTORY='MYSQLD_DATADIR/test';
|
||||||
ERROR HY000: Incorrect arguments to DATA DIRECTORY
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1(a INT)
|
CREATE TABLE t1(a INT)
|
||||||
DATA DIRECTORY='MYSQLD_DATADIR/';
|
DATA DIRECTORY='MYSQLD_DATADIR/';
|
||||||
ERROR HY000: Incorrect arguments to DATA DIRECTORY
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1(a INT)
|
CREATE TABLE t1(a INT)
|
||||||
INDEX DIRECTORY='MYSQLD_DATADIR';
|
INDEX DIRECTORY='MYSQLD_DATADIR';
|
||||||
ERROR HY000: Incorrect arguments to INDEX DIRECTORY
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1(a INT)
|
CREATE TABLE t1(a INT)
|
||||||
INDEX DIRECTORY='TEST_DIR/master-data_var';
|
INDEX DIRECTORY='TEST_DIR/master-data_var';
|
||||||
ERROR HY000: Can't create/write to file 'TEST_DIR/master-data_var/t1.MYI' (Errcode: 2)
|
ERROR HY000: Can't create/write to file 'TEST_DIR/master-data_var/t1.MYI' (Errcode: 2)
|
||||||
|
@ -1,33 +1,25 @@
|
|||||||
** Setup **
|
|
||||||
|
|
||||||
** Connecting con0 using root **
|
|
||||||
** Connecting con1 using root **
|
** Connecting con1 using root **
|
||||||
'#-----------------------------FN_DYNVARS_179_01------------------#'
|
SELECT date(now()) = date(sysdate());
|
||||||
** Connection con0 **
|
date(now()) = date(sysdate())
|
||||||
SET @ts_old = @@SESSION.timestamp;
|
1
|
||||||
waiting 1 sec
|
SET @@session.timestamp = 1100000000;
|
||||||
SET @ts_new = @@SESSION.timestamp;
|
SELECT date(now()) != date(sysdate());
|
||||||
SELECT @ts_new - @ts_old >= 1 AS 'Timestamp Difference';
|
date(now()) != date(sysdate())
|
||||||
Timestamp Difference
|
1
|
||||||
|
** Connecting con0 using root **
|
||||||
|
SELECT @@session.timestamp != 1100000000;
|
||||||
|
@@session.timestamp != 1100000000
|
||||||
|
1
|
||||||
|
SET @@session.timestamp = 1000000000;
|
||||||
|
SELECT date(now()) != date(sysdate());
|
||||||
|
date(now()) != date(sysdate())
|
||||||
1
|
1
|
||||||
1 means >=1 expected is true
|
|
||||||
** Connection con1 **
|
** Connection con1 **
|
||||||
SET @ts_old = @@SESSION.timestamp;
|
SELECT @@session.timestamp != 1000000000;
|
||||||
waiting 4 sec
|
@@session.timestamp != 1000000000
|
||||||
SET @ts_new = @@SESSION.timestamp;
|
|
||||||
SELECT @ts_new - @ts_old >= 4 AS 'Timestamp Difference';
|
|
||||||
Timestamp Difference
|
|
||||||
1
|
1
|
||||||
1 means >=4 expected is true
|
SELECT @@session.timestamp = 1100000000;
|
||||||
'#-----------------------------FN_DYNVARS_179_02---------------------#'
|
@@session.timestamp = 1100000000
|
||||||
SET @ts_old = @@SESSION.timestamp;
|
|
||||||
Changing time zone
|
|
||||||
SET time_zone = 'MET';
|
|
||||||
SET @ts_new = @@SESSION.timestamp;
|
|
||||||
SELECT @ts_new - @ts_old >= 1 AS 'Timestamp Difference';
|
|
||||||
Timestamp Difference
|
|
||||||
1
|
1
|
||||||
1 means >=1 expected is true
|
|
||||||
** Cleanup **
|
|
||||||
** Connection default **
|
** Connection default **
|
||||||
Disconnecting Connections con0, con1
|
Disconnecting Connections con0, con1
|
||||||
|
25
mysql-test/r/timestamp_sysdate_is_now_func.result
Normal file
25
mysql-test/r/timestamp_sysdate_is_now_func.result
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
** Connecting con1 using root **
|
||||||
|
SELECT date(now()) = date(sysdate());
|
||||||
|
date(now()) = date(sysdate())
|
||||||
|
1
|
||||||
|
SET @@session.timestamp = 1100000000;
|
||||||
|
SELECT date(now()) != date(sysdate());
|
||||||
|
date(now()) != date(sysdate())
|
||||||
|
0
|
||||||
|
** Connecting con0 using root **
|
||||||
|
SELECT @@session.timestamp != 1100000000;
|
||||||
|
@@session.timestamp != 1100000000
|
||||||
|
1
|
||||||
|
SET @@session.timestamp = 1000000000;
|
||||||
|
SELECT date(now()) != date(sysdate());
|
||||||
|
date(now()) != date(sysdate())
|
||||||
|
0
|
||||||
|
** Connection con1 **
|
||||||
|
SELECT @@session.timestamp != 1000000000;
|
||||||
|
@@session.timestamp != 1000000000
|
||||||
|
1
|
||||||
|
SELECT @@session.timestamp = 1100000000;
|
||||||
|
@@session.timestamp = 1100000000
|
||||||
|
1
|
||||||
|
** Connection default **
|
||||||
|
Disconnecting Connections con0, con1
|
@ -110,7 +110,7 @@ i ts
|
|||||||
362793610 1981-07-01 04:00:00
|
362793610 1981-07-01 04:00:00
|
||||||
select from_unixtime(362793609);
|
select from_unixtime(362793609);
|
||||||
from_unixtime(362793609)
|
from_unixtime(362793609)
|
||||||
1981-07-01 03:59:60
|
1981-07-01 03:59:59
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (ts timestamp);
|
create table t1 (ts timestamp);
|
||||||
set time_zone='UTC';
|
set time_zone='UTC';
|
||||||
|
@ -17,6 +17,9 @@ insert into t1 values
|
|||||||
insert into t1 values
|
insert into t1 values
|
||||||
(unix_timestamp('1981-07-01 03:59:59'),'1981-07-01 03:59:59'),
|
(unix_timestamp('1981-07-01 03:59:59'),'1981-07-01 03:59:59'),
|
||||||
(unix_timestamp('1981-07-01 04:00:00'),'1981-07-01 04:00:00');
|
(unix_timestamp('1981-07-01 04:00:00'),'1981-07-01 04:00:00');
|
||||||
|
insert into t1 values
|
||||||
|
(unix_timestamp('2009-01-01 02:59:59'),'2009-01-01 02:59:59'),
|
||||||
|
(unix_timestamp('2009-01-01 03:00:00'),'2009-01-01 03:00:00');
|
||||||
select i, from_unixtime(i), c from t1;
|
select i, from_unixtime(i), c from t1;
|
||||||
i from_unixtime(i) c
|
i from_unixtime(i) c
|
||||||
1072904422 2004-01-01 00:00:00 2004-01-01 00:00:00
|
1072904422 2004-01-01 00:00:00 2004-01-01 00:00:00
|
||||||
@ -31,6 +34,8 @@ i from_unixtime(i) c
|
|||||||
1099180821 2004-10-31 02:59:59 2004-10-31 02:59:59
|
1099180821 2004-10-31 02:59:59 2004-10-31 02:59:59
|
||||||
362793608 1981-07-01 03:59:59 1981-07-01 03:59:59
|
362793608 1981-07-01 03:59:59 1981-07-01 03:59:59
|
||||||
362793610 1981-07-01 04:00:00 1981-07-01 04:00:00
|
362793610 1981-07-01 04:00:00 1981-07-01 04:00:00
|
||||||
|
1230768022 2009-01-01 02:59:59 2009-01-01 02:59:59
|
||||||
|
1230768024 2009-01-01 03:00:00 2009-01-01 03:00:00
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (ts timestamp);
|
create table t1 (ts timestamp);
|
||||||
insert into t1 values (19730101235900), (20040101235900);
|
insert into t1 values (19730101235900), (20040101235900);
|
||||||
@ -39,3 +44,6 @@ ts
|
|||||||
1973-01-01 23:59:00
|
1973-01-01 23:59:00
|
||||||
2004-01-01 23:59:00
|
2004-01-01 23:59:00
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
SELECT FROM_UNIXTIME(1230768022), FROM_UNIXTIME(1230768023), FROM_UNIXTIME(1230768024);
|
||||||
|
FROM_UNIXTIME(1230768022) FROM_UNIXTIME(1230768023) FROM_UNIXTIME(1230768024)
|
||||||
|
2009-01-01 02:59:59 2009-01-01 02:59:59 2009-01-01 03:00:00
|
||||||
|
@ -1534,6 +1534,21 @@ select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
|
|||||||
(1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
|
(1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
|
||||||
1.01500000 * 1.01500000 * 0.99500000)
|
1.01500000 * 1.01500000 * 0.99500000)
|
||||||
0.812988073953673124592306939480
|
0.812988073953673124592306939480
|
||||||
|
create table t1 as select 5.05 / 0.014;
|
||||||
|
Warnings:
|
||||||
|
Note 1265 Data truncated for column '5.05 / 0.014' at row 1
|
||||||
|
show warnings;
|
||||||
|
Level Code Message
|
||||||
|
Note 1265 Data truncated for column '5.05 / 0.014' at row 1
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`5.05 / 0.014` decimal(10,6) DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
select * from t1;
|
||||||
|
5.05 / 0.014
|
||||||
|
360.714286
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
select cast(143.481 as decimal(4,1));
|
select cast(143.481 as decimal(4,1));
|
||||||
cast(143.481 as decimal(4,1))
|
cast(143.481 as decimal(4,1))
|
||||||
|
@ -1343,10 +1343,10 @@ t3 CREATE TABLE `t3` (
|
|||||||
`left(a,100000000)` longtext
|
`left(a,100000000)` longtext
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
drop tables t1,t2,t3;
|
drop tables t1,t2,t3;
|
||||||
SELECT @tmp_max:= @@max_allowed_packet;
|
SELECT @tmp_max:= @@global.max_allowed_packet;
|
||||||
@tmp_max:= @@max_allowed_packet
|
@tmp_max:= @@global.max_allowed_packet
|
||||||
1048576
|
1048576
|
||||||
SET max_allowed_packet=25000000;
|
SET @@global.max_allowed_packet=25000000;
|
||||||
CREATE TABLE t1 (a mediumtext);
|
CREATE TABLE t1 (a mediumtext);
|
||||||
CREATE TABLE t2 (b varchar(20));
|
CREATE TABLE t2 (b varchar(20));
|
||||||
INSERT INTO t1 VALUES ('a');
|
INSERT INTO t1 VALUES ('a');
|
||||||
@ -1384,7 +1384,7 @@ t3 CREATE TABLE `t3` (
|
|||||||
`a` varbinary(510) DEFAULT NULL
|
`a` varbinary(510) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLES t1,t2,t3;
|
DROP TABLES t1,t2,t3;
|
||||||
SET max_allowed_packet:= @tmp_max;
|
SET @@global.max_allowed_packet:= @tmp_max;
|
||||||
create table t1 ( id int not null auto_increment, primary key (id), col1 int);
|
create table t1 ( id int not null auto_increment, primary key (id), col1 int);
|
||||||
insert into t1 (col1) values (2),(3),(4),(5),(6);
|
insert into t1 (col1) values (2),(3),(4),(5),(6);
|
||||||
select 99 union all select id from t1 order by 1;
|
select 99 union all select id from t1 order by 1;
|
||||||
|
@ -491,4 +491,15 @@ update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
|
|||||||
affected rows: 127
|
affected rows: 127
|
||||||
info: Rows matched: 128 Changed: 127 Warnings: 0
|
info: Rows matched: 128 Changed: 127 Warnings: 0
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
DROP FUNCTION IF EXISTS f1;
|
||||||
|
CREATE FUNCTION f1() RETURNS INT RETURN f1();
|
||||||
|
CREATE TABLE t1 (i INT);
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
UPDATE t1 SET i = 3 WHERE f1();
|
||||||
|
ERROR HY000: Recursive stored functions and triggers are not allowed.
|
||||||
|
UPDATE t1 SET i = f1();
|
||||||
|
ERROR HY000: Recursive stored functions and triggers are not allowed.
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP FUNCTION f1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -16,3 +16,95 @@ slave_skip_errors 3,100,137,643,1752
|
|||||||
set global slave_net_timeout=default;
|
set global slave_net_timeout=default;
|
||||||
set global sql_slave_skip_counter= 0;
|
set global sql_slave_skip_counter= 0;
|
||||||
set @@global.slave_net_timeout= @my_slave_net_timeout;
|
set @@global.slave_net_timeout= @my_slave_net_timeout;
|
||||||
|
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'log_slave_updates';
|
||||||
|
Variable_name Value
|
||||||
|
log_slave_updates OFF
|
||||||
|
SELECT @@session.log_slave_updates;
|
||||||
|
ERROR HY000: Variable 'log_slave_updates' is a GLOBAL variable
|
||||||
|
SELECT @@global.log_slave_updates;
|
||||||
|
@@global.log_slave_updates
|
||||||
|
0
|
||||||
|
SET @@session.log_slave_updates= true;
|
||||||
|
ERROR HY000: Variable 'log_slave_updates' is a read only variable
|
||||||
|
SET @@global.log_slave_updates= true;
|
||||||
|
ERROR HY000: Variable 'log_slave_updates' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'relay_log';
|
||||||
|
Variable_name Value
|
||||||
|
relay_log
|
||||||
|
SELECT @@session.relay_log;
|
||||||
|
ERROR HY000: Variable 'relay_log' is a GLOBAL variable
|
||||||
|
SELECT @@global.relay_log;
|
||||||
|
@@global.relay_log
|
||||||
|
NULL
|
||||||
|
SET @@session.relay_log= 'x';
|
||||||
|
ERROR HY000: Variable 'relay_log' is a read only variable
|
||||||
|
SET @@global.relay_log= 'x';
|
||||||
|
ERROR HY000: Variable 'relay_log' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'relay_log_index';
|
||||||
|
Variable_name Value
|
||||||
|
relay_log_index
|
||||||
|
SELECT @@session.relay_log_index;
|
||||||
|
ERROR HY000: Variable 'relay_log_index' is a GLOBAL variable
|
||||||
|
SELECT @@global.relay_log_index;
|
||||||
|
@@global.relay_log_index
|
||||||
|
NULL
|
||||||
|
SET @@session.relay_log_index= 'x';
|
||||||
|
ERROR HY000: Variable 'relay_log_index' is a read only variable
|
||||||
|
SET @@global.relay_log_index= 'x';
|
||||||
|
ERROR HY000: Variable 'relay_log_index' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'relay_log_info_file';
|
||||||
|
Variable_name Value
|
||||||
|
relay_log_info_file relay-log.info
|
||||||
|
SELECT @@session.relay_log_info_file;
|
||||||
|
ERROR HY000: Variable 'relay_log_info_file' is a GLOBAL variable
|
||||||
|
SELECT @@global.relay_log_info_file;
|
||||||
|
@@global.relay_log_info_file
|
||||||
|
relay-log.info
|
||||||
|
SET @@session.relay_log_info_file= 'x';
|
||||||
|
ERROR HY000: Variable 'relay_log_info_file' is a read only variable
|
||||||
|
SET @@global.relay_log_info_file= 'x';
|
||||||
|
ERROR HY000: Variable 'relay_log_info_file' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'relay_log_space_limit';
|
||||||
|
Variable_name Value
|
||||||
|
relay_log_space_limit 0
|
||||||
|
SELECT @@session.relay_log_space_limit;
|
||||||
|
ERROR HY000: Variable 'relay_log_space_limit' is a GLOBAL variable
|
||||||
|
SELECT @@global.relay_log_space_limit;
|
||||||
|
@@global.relay_log_space_limit
|
||||||
|
0
|
||||||
|
SET @@session.relay_log_space_limit= 7;
|
||||||
|
ERROR HY000: Variable 'relay_log_space_limit' is a read only variable
|
||||||
|
SET @@global.relay_log_space_limit= 7;
|
||||||
|
ERROR HY000: Variable 'relay_log_space_limit' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'slave_load_tmpdir';
|
||||||
|
Variable_name Value
|
||||||
|
slave_load_tmpdir #
|
||||||
|
SELECT @@session.slave_load_tmpdir;
|
||||||
|
ERROR HY000: Variable 'slave_load_tmpdir' is a GLOBAL variable
|
||||||
|
SELECT @@global.slave_load_tmpdir;
|
||||||
|
@@global.slave_load_tmpdir
|
||||||
|
#
|
||||||
|
SET @@session.slave_load_tmpdir= 'x';
|
||||||
|
ERROR HY000: Variable 'slave_load_tmpdir' is a read only variable
|
||||||
|
SET @@global.slave_load_tmpdir= 'x';
|
||||||
|
ERROR HY000: Variable 'slave_load_tmpdir' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'slave_skip_errors';
|
||||||
|
Variable_name Value
|
||||||
|
slave_skip_errors 3,100,137,643,1752
|
||||||
|
SELECT @@session.slave_skip_errors;
|
||||||
|
ERROR HY000: Variable 'slave_skip_errors' is a GLOBAL variable
|
||||||
|
SELECT @@global.slave_skip_errors;
|
||||||
|
@@global.slave_skip_errors
|
||||||
|
3,100,137,643,1752
|
||||||
|
SET @@session.slave_skip_errors= 7;
|
||||||
|
ERROR HY000: Variable 'slave_skip_errors' is a read only variable
|
||||||
|
SET @@global.slave_skip_errors= 7;
|
||||||
|
ERROR HY000: Variable 'slave_skip_errors' is a read only variable
|
||||||
|
@ -229,7 +229,6 @@ VARIABLE_NAME VARIABLE_VALUE
|
|||||||
MYISAM_MAX_SORT_FILE_SIZE FILE_SIZE
|
MYISAM_MAX_SORT_FILE_SIZE FILE_SIZE
|
||||||
set global net_retry_count=10, session net_retry_count=10;
|
set global net_retry_count=10, session net_retry_count=10;
|
||||||
set global net_buffer_length=1024, net_write_timeout=200, net_read_timeout=300;
|
set global net_buffer_length=1024, net_write_timeout=200, net_read_timeout=300;
|
||||||
set session net_buffer_length=2048, net_write_timeout=500, net_read_timeout=600;
|
|
||||||
show global variables like 'net_%';
|
show global variables like 'net_%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
net_buffer_length 1024
|
net_buffer_length 1024
|
||||||
@ -244,57 +243,45 @@ NET_RETRY_COUNT 10
|
|||||||
NET_WRITE_TIMEOUT 200
|
NET_WRITE_TIMEOUT 200
|
||||||
show session variables like 'net_%';
|
show session variables like 'net_%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
net_buffer_length 2048
|
net_buffer_length 16384
|
||||||
net_read_timeout 600
|
net_read_timeout 30
|
||||||
net_retry_count 10
|
net_retry_count 10
|
||||||
net_write_timeout 500
|
net_write_timeout 60
|
||||||
select * from information_schema.session_variables where variable_name like 'net_%' order by 1;
|
select * from information_schema.session_variables where variable_name like 'net_%' order by 1;
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
NET_BUFFER_LENGTH 2048
|
NET_BUFFER_LENGTH 16384
|
||||||
NET_READ_TIMEOUT 600
|
NET_READ_TIMEOUT 30
|
||||||
NET_RETRY_COUNT 10
|
NET_RETRY_COUNT 10
|
||||||
NET_WRITE_TIMEOUT 500
|
NET_WRITE_TIMEOUT 60
|
||||||
set session net_buffer_length=8000, global net_read_timeout=900, net_write_timeout=1000;
|
set global net_buffer_length=8000, global net_read_timeout=900, net_write_timeout=1000;
|
||||||
show global variables like 'net_%';
|
show global variables like 'net_%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
net_buffer_length 1024
|
net_buffer_length 7168
|
||||||
net_read_timeout 900
|
net_read_timeout 900
|
||||||
net_retry_count 10
|
net_retry_count 10
|
||||||
net_write_timeout 1000
|
net_write_timeout 1000
|
||||||
select * from information_schema.global_variables where variable_name like 'net_%' order by 1;
|
select * from information_schema.global_variables where variable_name like 'net_%' order by 1;
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
NET_BUFFER_LENGTH 1024
|
NET_BUFFER_LENGTH 7168
|
||||||
NET_READ_TIMEOUT 900
|
NET_READ_TIMEOUT 900
|
||||||
NET_RETRY_COUNT 10
|
NET_RETRY_COUNT 10
|
||||||
NET_WRITE_TIMEOUT 1000
|
NET_WRITE_TIMEOUT 1000
|
||||||
show session variables like 'net_%';
|
set global net_buffer_length=1;
|
||||||
Variable_name Value
|
|
||||||
net_buffer_length 7168
|
|
||||||
net_read_timeout 600
|
|
||||||
net_retry_count 10
|
|
||||||
net_write_timeout 500
|
|
||||||
select * from information_schema.session_variables where variable_name like 'net_%' order by 1;
|
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
|
||||||
NET_BUFFER_LENGTH 7168
|
|
||||||
NET_READ_TIMEOUT 600
|
|
||||||
NET_RETRY_COUNT 10
|
|
||||||
NET_WRITE_TIMEOUT 500
|
|
||||||
set net_buffer_length=1;
|
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect net_buffer_length value: '1'
|
Warning 1292 Truncated incorrect net_buffer_length value: '1'
|
||||||
show variables like 'net_buffer_length';
|
show global variables like 'net_buffer_length';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
net_buffer_length 1024
|
net_buffer_length 1024
|
||||||
select * from information_schema.session_variables where variable_name like 'net_buffer_length';
|
select * from information_schema.global_variables where variable_name like 'net_buffer_length';
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
NET_BUFFER_LENGTH 1024
|
NET_BUFFER_LENGTH 1024
|
||||||
set net_buffer_length=2000000000;
|
set global net_buffer_length=2000000000;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect net_buffer_length value: '2000000000'
|
Warning 1292 Truncated incorrect net_buffer_length value: '2000000000'
|
||||||
show variables like 'net_buffer_length';
|
show global variables like 'net_buffer_length';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
net_buffer_length 1048576
|
net_buffer_length 1048576
|
||||||
select * from information_schema.session_variables where variable_name like 'net_buffer_length';
|
select * from information_schema.global_variables where variable_name like 'net_buffer_length';
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
NET_BUFFER_LENGTH 1048576
|
NET_BUFFER_LENGTH 1048576
|
||||||
set character set cp1251_koi8;
|
set character set cp1251_koi8;
|
||||||
@ -462,7 +449,7 @@ select @@long_query_time;
|
|||||||
@@long_query_time
|
@@long_query_time
|
||||||
100.000001
|
100.000001
|
||||||
set low_priority_updates=1;
|
set low_priority_updates=1;
|
||||||
set max_allowed_packet=100;
|
set global max_allowed_packet=100;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect max_allowed_packet value: '100'
|
Warning 1292 Truncated incorrect max_allowed_packet value: '100'
|
||||||
set global max_binlog_cache_size=100;
|
set global max_binlog_cache_size=100;
|
||||||
@ -486,7 +473,7 @@ select @@max_user_connections;
|
|||||||
100
|
100
|
||||||
set global max_write_lock_count=100;
|
set global max_write_lock_count=100;
|
||||||
set myisam_sort_buffer_size=100;
|
set myisam_sort_buffer_size=100;
|
||||||
set net_buffer_length=100;
|
set global net_buffer_length=100;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect net_buffer_length value: '100'
|
Warning 1292 Truncated incorrect net_buffer_length value: '100'
|
||||||
set net_read_timeout=100;
|
set net_read_timeout=100;
|
||||||
@ -1026,3 +1013,329 @@ SET GLOBAL log_output = 0;
|
|||||||
ERROR 42000: Variable 'log_output' can't be set to the value of '0'
|
ERROR 42000: Variable 'log_output' can't be set to the value of '0'
|
||||||
|
|
||||||
# -- End of Bug#34820.
|
# -- End of Bug#34820.
|
||||||
|
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'ft_max_word_len';
|
||||||
|
Variable_name Value
|
||||||
|
ft_max_word_len 84
|
||||||
|
SELECT @@session.ft_max_word_len;
|
||||||
|
ERROR HY000: Variable 'ft_max_word_len' is a GLOBAL variable
|
||||||
|
SELECT @@global.ft_max_word_len;
|
||||||
|
@@global.ft_max_word_len
|
||||||
|
84
|
||||||
|
SET @@session.ft_max_word_len= 7;
|
||||||
|
ERROR HY000: Variable 'ft_max_word_len' is a read only variable
|
||||||
|
SET @@global.ft_max_word_len= 7;
|
||||||
|
ERROR HY000: Variable 'ft_max_word_len' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'ft_min_word_len';
|
||||||
|
Variable_name Value
|
||||||
|
ft_min_word_len 4
|
||||||
|
SELECT @@session.ft_min_word_len;
|
||||||
|
ERROR HY000: Variable 'ft_min_word_len' is a GLOBAL variable
|
||||||
|
SELECT @@global.ft_min_word_len;
|
||||||
|
@@global.ft_min_word_len
|
||||||
|
4
|
||||||
|
SET @@session.ft_min_word_len= 7;
|
||||||
|
ERROR HY000: Variable 'ft_min_word_len' is a read only variable
|
||||||
|
SET @@global.ft_min_word_len= 7;
|
||||||
|
ERROR HY000: Variable 'ft_min_word_len' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'ft_query_expansion_limit';
|
||||||
|
Variable_name Value
|
||||||
|
ft_query_expansion_limit 20
|
||||||
|
SELECT @@session.ft_query_expansion_limit;
|
||||||
|
ERROR HY000: Variable 'ft_query_expansion_limit' is a GLOBAL variable
|
||||||
|
SELECT @@global.ft_query_expansion_limit;
|
||||||
|
@@global.ft_query_expansion_limit
|
||||||
|
20
|
||||||
|
SET @@session.ft_query_expansion_limit= 7;
|
||||||
|
ERROR HY000: Variable 'ft_query_expansion_limit' is a read only variable
|
||||||
|
SET @@global.ft_query_expansion_limit= 7;
|
||||||
|
ERROR HY000: Variable 'ft_query_expansion_limit' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'ft_stopword_file';
|
||||||
|
Variable_name Value
|
||||||
|
ft_stopword_file (built-in)
|
||||||
|
SELECT @@session.ft_stopword_file;
|
||||||
|
ERROR HY000: Variable 'ft_stopword_file' is a GLOBAL variable
|
||||||
|
SELECT @@global.ft_stopword_file;
|
||||||
|
@@global.ft_stopword_file
|
||||||
|
(built-in)
|
||||||
|
SET @@session.ft_stopword_file= 'x';
|
||||||
|
ERROR HY000: Variable 'ft_stopword_file' is a read only variable
|
||||||
|
SET @@global.ft_stopword_file= 'x';
|
||||||
|
ERROR HY000: Variable 'ft_stopword_file' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'back_log';
|
||||||
|
Variable_name Value
|
||||||
|
back_log 50
|
||||||
|
SELECT @@session.back_log;
|
||||||
|
ERROR HY000: Variable 'back_log' is a GLOBAL variable
|
||||||
|
SELECT @@global.back_log;
|
||||||
|
@@global.back_log
|
||||||
|
50
|
||||||
|
SET @@session.back_log= 7;
|
||||||
|
ERROR HY000: Variable 'back_log' is a read only variable
|
||||||
|
SET @@global.back_log= 7;
|
||||||
|
ERROR HY000: Variable 'back_log' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'large_files_support';
|
||||||
|
Variable_name Value
|
||||||
|
large_files_support #
|
||||||
|
SELECT @@session.large_files_support;
|
||||||
|
ERROR HY000: Variable 'large_files_support' is a GLOBAL variable
|
||||||
|
SELECT @@global.large_files_support;
|
||||||
|
@@global.large_files_support
|
||||||
|
#
|
||||||
|
SET @@session.large_files_support= true;
|
||||||
|
ERROR HY000: Variable 'large_files_support' is a read only variable
|
||||||
|
SET @@global.large_files_support= true;
|
||||||
|
ERROR HY000: Variable 'large_files_support' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'character_sets_dir';
|
||||||
|
Variable_name Value
|
||||||
|
character_sets_dir #
|
||||||
|
SELECT @@session.character_sets_dir;
|
||||||
|
ERROR HY000: Variable 'character_sets_dir' is a GLOBAL variable
|
||||||
|
SELECT @@global.character_sets_dir;
|
||||||
|
@@global.character_sets_dir
|
||||||
|
#
|
||||||
|
SET @@session.character_sets_dir= 'x';
|
||||||
|
ERROR HY000: Variable 'character_sets_dir' is a read only variable
|
||||||
|
SET @@global.character_sets_dir= 'x';
|
||||||
|
ERROR HY000: Variable 'character_sets_dir' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'init_file';
|
||||||
|
Variable_name Value
|
||||||
|
init_file #
|
||||||
|
SELECT @@session.init_file;
|
||||||
|
ERROR HY000: Variable 'init_file' is a GLOBAL variable
|
||||||
|
SELECT @@global.init_file;
|
||||||
|
@@global.init_file
|
||||||
|
#
|
||||||
|
SET @@session.init_file= 'x';
|
||||||
|
ERROR HY000: Variable 'init_file' is a read only variable
|
||||||
|
SET @@global.init_file= 'x';
|
||||||
|
ERROR HY000: Variable 'init_file' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'language';
|
||||||
|
Variable_name Value
|
||||||
|
language #
|
||||||
|
SELECT @@session.language;
|
||||||
|
ERROR HY000: Variable 'language' is a GLOBAL variable
|
||||||
|
SELECT @@global.language;
|
||||||
|
@@global.language
|
||||||
|
#
|
||||||
|
SET @@session.language= 'x';
|
||||||
|
ERROR HY000: Variable 'language' is a read only variable
|
||||||
|
SET @@global.language= 'x';
|
||||||
|
ERROR HY000: Variable 'language' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'large_page_size';
|
||||||
|
Variable_name Value
|
||||||
|
large_page_size #
|
||||||
|
SELECT @@session.large_page_size;
|
||||||
|
ERROR HY000: Variable 'large_page_size' is a GLOBAL variable
|
||||||
|
SELECT @@global.large_page_size;
|
||||||
|
@@global.large_page_size
|
||||||
|
#
|
||||||
|
SET @@session.large_page_size= 7;
|
||||||
|
ERROR HY000: Variable 'large_page_size' is a read only variable
|
||||||
|
SET @@global.large_page_size= 7;
|
||||||
|
ERROR HY000: Variable 'large_page_size' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'large_pages';
|
||||||
|
Variable_name Value
|
||||||
|
large_pages #
|
||||||
|
SELECT @@session.large_pages;
|
||||||
|
ERROR HY000: Variable 'large_pages' is a GLOBAL variable
|
||||||
|
SELECT @@global.large_pages;
|
||||||
|
@@global.large_pages
|
||||||
|
#
|
||||||
|
SET @@session.large_pages= true;
|
||||||
|
ERROR HY000: Variable 'large_pages' is a read only variable
|
||||||
|
SET @@global.large_pages= true;
|
||||||
|
ERROR HY000: Variable 'large_pages' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'log_bin';
|
||||||
|
Variable_name Value
|
||||||
|
log_bin OFF
|
||||||
|
SELECT @@session.log_bin;
|
||||||
|
ERROR HY000: Variable 'log_bin' is a GLOBAL variable
|
||||||
|
SELECT @@global.log_bin;
|
||||||
|
@@global.log_bin
|
||||||
|
0
|
||||||
|
SET @@session.log_bin= true;
|
||||||
|
ERROR HY000: Variable 'log_bin' is a read only variable
|
||||||
|
SET @@global.log_bin= true;
|
||||||
|
ERROR HY000: Variable 'log_bin' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'log_error';
|
||||||
|
Variable_name Value
|
||||||
|
log_error #
|
||||||
|
SELECT @@session.log_error;
|
||||||
|
ERROR HY000: Variable 'log_error' is a GLOBAL variable
|
||||||
|
SELECT @@global.log_error;
|
||||||
|
@@global.log_error
|
||||||
|
#
|
||||||
|
SET @@session.log_error= 'x';
|
||||||
|
ERROR HY000: Variable 'log_error' is a read only variable
|
||||||
|
SET @@global.log_error= 'x';
|
||||||
|
ERROR HY000: Variable 'log_error' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'lower_case_file_system';
|
||||||
|
Variable_name Value
|
||||||
|
lower_case_file_system #
|
||||||
|
SELECT @@session.lower_case_file_system;
|
||||||
|
ERROR HY000: Variable 'lower_case_file_system' is a GLOBAL variable
|
||||||
|
SELECT @@global.lower_case_file_system;
|
||||||
|
@@global.lower_case_file_system
|
||||||
|
#
|
||||||
|
SET @@session.lower_case_file_system= true;
|
||||||
|
ERROR HY000: Variable 'lower_case_file_system' is a read only variable
|
||||||
|
SET @@global.lower_case_file_system= true;
|
||||||
|
ERROR HY000: Variable 'lower_case_file_system' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'lower_case_table_names';
|
||||||
|
Variable_name Value
|
||||||
|
lower_case_table_names #
|
||||||
|
SELECT @@session.lower_case_table_names;
|
||||||
|
ERROR HY000: Variable 'lower_case_table_names' is a GLOBAL variable
|
||||||
|
SELECT @@global.lower_case_table_names;
|
||||||
|
@@global.lower_case_table_names
|
||||||
|
#
|
||||||
|
SET @@session.lower_case_table_names= 7;
|
||||||
|
ERROR HY000: Variable 'lower_case_table_names' is a read only variable
|
||||||
|
SET @@global.lower_case_table_names= 7;
|
||||||
|
ERROR HY000: Variable 'lower_case_table_names' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'myisam_recover_options';
|
||||||
|
Variable_name Value
|
||||||
|
myisam_recover_options OFF
|
||||||
|
SELECT @@session.myisam_recover_options;
|
||||||
|
ERROR HY000: Variable 'myisam_recover_options' is a GLOBAL variable
|
||||||
|
SELECT @@global.myisam_recover_options;
|
||||||
|
@@global.myisam_recover_options
|
||||||
|
OFF
|
||||||
|
SET @@session.myisam_recover_options= 'x';
|
||||||
|
ERROR HY000: Variable 'myisam_recover_options' is a read only variable
|
||||||
|
SET @@global.myisam_recover_options= 'x';
|
||||||
|
ERROR HY000: Variable 'myisam_recover_options' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'open_files_limit';
|
||||||
|
Variable_name Value
|
||||||
|
open_files_limit #
|
||||||
|
SELECT @@session.open_files_limit;
|
||||||
|
ERROR HY000: Variable 'open_files_limit' is a GLOBAL variable
|
||||||
|
SELECT @@global.open_files_limit;
|
||||||
|
@@global.open_files_limit
|
||||||
|
#
|
||||||
|
SET @@session.open_files_limit= 7;
|
||||||
|
ERROR HY000: Variable 'open_files_limit' is a read only variable
|
||||||
|
SET @@global.open_files_limit= 7;
|
||||||
|
ERROR HY000: Variable 'open_files_limit' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'pid_file';
|
||||||
|
Variable_name Value
|
||||||
|
pid_file #
|
||||||
|
SELECT @@session.pid_file;
|
||||||
|
ERROR HY000: Variable 'pid_file' is a GLOBAL variable
|
||||||
|
SELECT @@global.pid_file;
|
||||||
|
@@global.pid_file
|
||||||
|
#
|
||||||
|
SET @@session.pid_file= 'x';
|
||||||
|
ERROR HY000: Variable 'pid_file' is a read only variable
|
||||||
|
SET @@global.pid_file= 'x';
|
||||||
|
ERROR HY000: Variable 'pid_file' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'plugin_dir';
|
||||||
|
Variable_name Value
|
||||||
|
plugin_dir #
|
||||||
|
SELECT @@session.plugin_dir;
|
||||||
|
ERROR HY000: Variable 'plugin_dir' is a GLOBAL variable
|
||||||
|
SELECT @@global.plugin_dir;
|
||||||
|
@@global.plugin_dir
|
||||||
|
#
|
||||||
|
SET @@session.plugin_dir= 'x';
|
||||||
|
ERROR HY000: Variable 'plugin_dir' is a read only variable
|
||||||
|
SET @@global.plugin_dir= 'x';
|
||||||
|
ERROR HY000: Variable 'plugin_dir' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'port';
|
||||||
|
Variable_name Value
|
||||||
|
port #
|
||||||
|
SELECT @@session.port;
|
||||||
|
ERROR HY000: Variable 'port' is a GLOBAL variable
|
||||||
|
SELECT @@global.port;
|
||||||
|
@@global.port
|
||||||
|
#
|
||||||
|
SET @@session.port= 7;
|
||||||
|
ERROR HY000: Variable 'port' is a read only variable
|
||||||
|
SET @@global.port= 7;
|
||||||
|
ERROR HY000: Variable 'port' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'protocol_version';
|
||||||
|
Variable_name Value
|
||||||
|
protocol_version 10
|
||||||
|
SELECT @@session.protocol_version;
|
||||||
|
ERROR HY000: Variable 'protocol_version' is a GLOBAL variable
|
||||||
|
SELECT @@global.protocol_version;
|
||||||
|
@@global.protocol_version
|
||||||
|
10
|
||||||
|
SET @@session.protocol_version= 7;
|
||||||
|
ERROR HY000: Variable 'protocol_version' is a read only variable
|
||||||
|
SET @@global.protocol_version= 7;
|
||||||
|
ERROR HY000: Variable 'protocol_version' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'skip_external_locking';
|
||||||
|
Variable_name Value
|
||||||
|
skip_external_locking ON
|
||||||
|
SELECT @@session.skip_external_locking;
|
||||||
|
ERROR HY000: Variable 'skip_external_locking' is a GLOBAL variable
|
||||||
|
SELECT @@global.skip_external_locking;
|
||||||
|
@@global.skip_external_locking
|
||||||
|
1
|
||||||
|
SET @@session.skip_external_locking= true;
|
||||||
|
ERROR HY000: Variable 'skip_external_locking' is a read only variable
|
||||||
|
SET @@global.skip_external_locking= true;
|
||||||
|
ERROR HY000: Variable 'skip_external_locking' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'skip_networking';
|
||||||
|
Variable_name Value
|
||||||
|
skip_networking OFF
|
||||||
|
SELECT @@session.skip_networking;
|
||||||
|
ERROR HY000: Variable 'skip_networking' is a GLOBAL variable
|
||||||
|
SELECT @@global.skip_networking;
|
||||||
|
@@global.skip_networking
|
||||||
|
0
|
||||||
|
SET @@session.skip_networking= true;
|
||||||
|
ERROR HY000: Variable 'skip_networking' is a read only variable
|
||||||
|
SET @@global.skip_networking= true;
|
||||||
|
ERROR HY000: Variable 'skip_networking' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'skip_show_database';
|
||||||
|
Variable_name Value
|
||||||
|
skip_show_database OFF
|
||||||
|
SELECT @@session.skip_show_database;
|
||||||
|
ERROR HY000: Variable 'skip_show_database' is a GLOBAL variable
|
||||||
|
SELECT @@global.skip_show_database;
|
||||||
|
@@global.skip_show_database
|
||||||
|
0
|
||||||
|
SET @@session.skip_show_database= true;
|
||||||
|
ERROR HY000: Variable 'skip_show_database' is a read only variable
|
||||||
|
SET @@global.skip_show_database= true;
|
||||||
|
ERROR HY000: Variable 'skip_show_database' is a read only variable
|
||||||
|
#
|
||||||
|
SHOW VARIABLES like 'thread_stack';
|
||||||
|
Variable_name Value
|
||||||
|
thread_stack #
|
||||||
|
SELECT @@session.thread_stack;
|
||||||
|
ERROR HY000: Variable 'thread_stack' is a GLOBAL variable
|
||||||
|
SELECT @@global.thread_stack;
|
||||||
|
@@global.thread_stack
|
||||||
|
#
|
||||||
|
SET @@session.thread_stack= 7;
|
||||||
|
ERROR HY000: Variable 'thread_stack' is a read only variable
|
||||||
|
SET @@global.thread_stack= 7;
|
||||||
|
ERROR HY000: Variable 'thread_stack' is a read only variable
|
||||||
|
@ -625,7 +625,7 @@ drop table t1;
|
|||||||
create table t1 (a int, b int);
|
create table t1 (a int, b int);
|
||||||
create view v1 as select a, sum(b) from t1 group by a;
|
create view v1 as select a, sum(b) from t1 group by a;
|
||||||
select b from v1 use index (some_index) where b=1;
|
select b from v1 use index (some_index) where b=1;
|
||||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
ERROR 42000: Key 'some_index' doesn't exist in table 'v1'
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (col1 char(5),col2 char(5));
|
create table t1 (col1 char(5),col2 char(5));
|
||||||
@ -3562,11 +3562,11 @@ CREATE TABLE t1 (a INT);
|
|||||||
INSERT INTO t1 VALUES (1),(2);
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||||
SELECT * FROM v1 USE KEY(non_existant);
|
SELECT * FROM v1 USE KEY(non_existant);
|
||||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
ERROR 42000: Key 'non_existant' doesn't exist in table 'v1'
|
||||||
SELECT * FROM v1 FORCE KEY(non_existant);
|
SELECT * FROM v1 FORCE KEY(non_existant);
|
||||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
ERROR 42000: Key 'non_existant' doesn't exist in table 'v1'
|
||||||
SELECT * FROM v1 IGNORE KEY(non_existant);
|
SELECT * FROM v1 IGNORE KEY(non_existant);
|
||||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
ERROR 42000: Key 'non_existant' doesn't exist in table 'v1'
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b INT NOT NULL DEFAULT 0,
|
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b INT NOT NULL DEFAULT 0,
|
||||||
@ -3674,6 +3674,31 @@ DROP VIEW v1;
|
|||||||
|
|
||||||
CREATE VIEW v1 AS SELECT 1;
|
CREATE VIEW v1 AS SELECT 1;
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
|
CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT, INDEX (c2));
|
||||||
|
INSERT INTO t1 VALUES (1,1), (2,2), (3,3);
|
||||||
|
SELECT * FROM t1 USE INDEX (PRIMARY) WHERE c1=2;
|
||||||
|
c1 c2
|
||||||
|
2 2
|
||||||
|
SELECT * FROM t1 USE INDEX (c2) WHERE c2=2;
|
||||||
|
c1 c2
|
||||||
|
2 2
|
||||||
|
CREATE VIEW v1 AS SELECT c1, c2 FROM t1;
|
||||||
|
SHOW INDEX FROM v1;
|
||||||
|
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||||
|
SELECT * FROM v1 USE INDEX (PRIMARY) WHERE c1=2;
|
||||||
|
ERROR 42000: Key 'PRIMARY' doesn't exist in table 'v1'
|
||||||
|
SELECT * FROM v1 FORCE INDEX (PRIMARY) WHERE c1=2;
|
||||||
|
ERROR 42000: Key 'PRIMARY' doesn't exist in table 'v1'
|
||||||
|
SELECT * FROM v1 IGNORE INDEX (PRIMARY) WHERE c1=2;
|
||||||
|
ERROR 42000: Key 'PRIMARY' doesn't exist in table 'v1'
|
||||||
|
SELECT * FROM v1 USE INDEX (c2) WHERE c2=2;
|
||||||
|
ERROR 42000: Key 'c2' doesn't exist in table 'v1'
|
||||||
|
SELECT * FROM v1 FORCE INDEX (c2) WHERE c2=2;
|
||||||
|
ERROR 42000: Key 'c2' doesn't exist in table 'v1'
|
||||||
|
SELECT * FROM v1 IGNORE INDEX (c2) WHERE c2=2;
|
||||||
|
ERROR 42000: Key 'c2' doesn't exist in table 'v1'
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1;
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
# -- End of 5.0 tests.
|
# -- End of 5.0 tests.
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
|
@ -1,33 +1,32 @@
|
|||||||
drop table if exists t1;
|
SET @start_value= @@global.wait_timeout;
|
||||||
## Creating new table t1 ##
|
|
||||||
CREATE TABLE t1
|
|
||||||
(
|
|
||||||
id INT NOT NULL auto_increment,
|
|
||||||
PRIMARY KEY (id),
|
|
||||||
name VARCHAR(30)
|
|
||||||
);
|
|
||||||
SET @old_wait_timeout = @@global.wait_timeout;
|
|
||||||
'#--------------------FN_DYNVARS_186_01-------------------------#'
|
'#--------------------FN_DYNVARS_186_01-------------------------#'
|
||||||
## Creating new connection test_con1 ##
|
SET @start_time= UNIX_TIMESTAMP();
|
||||||
## Setting value of variable to 5 ##
|
connect (test_con1, localhost, root,,);
|
||||||
SET @@session.wait_timeout = 5;
|
SELECT @@session.wait_timeout = @@global.wait_timeout AS 'Expect 1';
|
||||||
## Inserting record in table t1 ##
|
Expect 1
|
||||||
INSERT into t1(name) values('Record_1');
|
1
|
||||||
## Using sleep to check timeout ##
|
SET @@session.wait_timeout = <session_value>;
|
||||||
'#--------------------FN_DYNVARS_186_02-------------------------#'
|
connect (test_con2, localhost, root,,);
|
||||||
## Setting value of variable ##
|
SET @@session.wait_timeout = <session_value> - 1;
|
||||||
SET @@global.wait_timeout = 5;
|
connection default;
|
||||||
## Creating new connection test_con2 ##
|
wait until connections ready
|
||||||
INSERT into t1(name) values('Record_2');
|
SELECT info FROM information_schema.processlist;
|
||||||
## Using sleep to check timeout ##
|
info
|
||||||
|
SELECT info FROM information_schema.processlist
|
||||||
'#--------------------FN_DYNVARS_186_03-------------------------#'
|
'#--------------------FN_DYNVARS_186_03-------------------------#'
|
||||||
## Setting value of variable to 1 ##
|
SET @@global.wait_timeout= <global_value>;
|
||||||
SET @@global.wait_timeout = 1;
|
SELECT @@session.wait_timeout = @start_value AS 'Expect 1';
|
||||||
## Creating new connection ##
|
Expect 1
|
||||||
INSERT into t1(name) values('Record_3');
|
1
|
||||||
## Using sleep to check timeout ##
|
connect (test_con3, localhost, root,,);
|
||||||
## We cannot test it further because the server closes the connection due to wait_timeout ##
|
SELECT @@session.wait_timeout = @@global.wait_timeout AS 'Expect 1';
|
||||||
SELECT * from t1;
|
Expect 1
|
||||||
ERROR HY000: MySQL server has gone away
|
1
|
||||||
DROP TABLE t1;
|
connection default;
|
||||||
SET @@global.wait_timeout = @old_wait_timeout;
|
SELECT info FROM information_schema.processlist;
|
||||||
|
info
|
||||||
|
SELECT info FROM information_schema.processlist
|
||||||
|
SELECT UNIX_TIMESTAMP() - @start_time >= <global_value> + <session_value>;;
|
||||||
|
UNIX_TIMESTAMP() - @start_time >= <global_value> + <session_value>;
|
||||||
|
1
|
||||||
|
SET @@global.wait_timeout= @start_value;
|
||||||
|
Binary file not shown.
@ -2123,6 +2123,15 @@ Table Checksum
|
|||||||
test.t1 2465757603
|
test.t1 2465757603
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a TEXT, b TEXT, KEY(b(1)));
|
||||||
|
INSERT INTO t1 VALUES (NULL, NULL), (NULL, NULL), (NULL, NULL), (NULL, NULL);
|
||||||
|
CREATE TABLE t1
|
||||||
|
(a TEXT, b TEXT, KEY(b(1))) ENGINE=FEDERATED
|
||||||
|
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1';
|
||||||
|
SELECT t1.a FROM t1, t1 as t2 WHERE t2.b NOT LIKE t1.b;
|
||||||
|
a
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
create server 's1' foreign data wrapper 'mysql' options (port 3306);
|
create server 's1' foreign data wrapper 'mysql' options (port 3306);
|
||||||
drop server 's1';
|
drop server 's1';
|
||||||
|
@ -1923,6 +1923,25 @@ DROP TABLE t1;
|
|||||||
connection master;
|
connection master;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #34774 key prefix on text field in federated tables can cause
|
||||||
|
# server to crash!
|
||||||
|
#
|
||||||
|
connection slave;
|
||||||
|
CREATE TABLE t1 (a TEXT, b TEXT, KEY(b(1)));
|
||||||
|
INSERT INTO t1 VALUES (NULL, NULL), (NULL, NULL), (NULL, NULL), (NULL, NULL);
|
||||||
|
connection master;
|
||||||
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||||
|
eval CREATE TABLE t1
|
||||||
|
(a TEXT, b TEXT, KEY(b(1))) ENGINE=FEDERATED
|
||||||
|
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1';
|
||||||
|
SELECT t1.a FROM t1, t1 as t2 WHERE t2.b NOT LIKE t1.b;
|
||||||
|
connection slave;
|
||||||
|
DROP TABLE t1;
|
||||||
|
connection master;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
connection default;
|
connection default;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
source federated.inc;
|
# NOTE: Keep any include/ files that will kill / skip a test BEFORE any others
|
||||||
|
# having federated.inc before have_innodb.inc allows for an orphaned database
|
||||||
|
# that can cause other tests to fail.
|
||||||
|
# See Bug #40645 Test main.federated_innodb does not always clean up after itself
|
||||||
|
|
||||||
source include/have_innodb.inc;
|
source include/have_innodb.inc;
|
||||||
|
source federated.inc;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#25513 Federated transaction failures
|
# Bug#25513 Federated transaction failures
|
||||||
|
@ -346,6 +346,7 @@ WHERE table_name = 't1_my_tablex';
|
|||||||
# Enforce a time difference bigger than the smallest unit (1 second).
|
# Enforce a time difference bigger than the smallest unit (1 second).
|
||||||
--real_sleep 1.1
|
--real_sleep 1.1
|
||||||
INSERT INTO db_datadict.t1_my_tablex SET f1 = 3;
|
INSERT INTO db_datadict.t1_my_tablex SET f1 = 3;
|
||||||
|
FLUSH TABLES;
|
||||||
SELECT UPDATE_TIME > @UPDATE_TIME
|
SELECT UPDATE_TIME > @UPDATE_TIME
|
||||||
AS "Is current UPDATE_TIME bigger than before last INSERT?"
|
AS "Is current UPDATE_TIME bigger than before last INSERT?"
|
||||||
FROM information_schema.tables
|
FROM information_schema.tables
|
||||||
|
@ -28,22 +28,22 @@ DROP FUNCTION test.f1;
|
|||||||
#########################################################################
|
#########################################################################
|
||||||
DESCRIBE information_schema.CHARACTER_SETS;
|
DESCRIBE information_schema.CHARACTER_SETS;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
CHARACTER_SET_NAME varchar(64) NO
|
CHARACTER_SET_NAME varchar(32) NO
|
||||||
DEFAULT_COLLATE_NAME varchar(64) NO
|
DEFAULT_COLLATE_NAME varchar(32) NO
|
||||||
DESCRIPTION varchar(60) NO
|
DESCRIPTION varchar(60) NO
|
||||||
MAXLEN bigint(3) NO 0
|
MAXLEN bigint(3) NO 0
|
||||||
SHOW CREATE TABLE information_schema.CHARACTER_SETS;
|
SHOW CREATE TABLE information_schema.CHARACTER_SETS;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
|
CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
|
||||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`DEFAULT_COLLATE_NAME` varchar(64) NOT NULL DEFAULT '',
|
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
||||||
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
||||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||||
SHOW COLUMNS FROM information_schema.CHARACTER_SETS;
|
SHOW COLUMNS FROM information_schema.CHARACTER_SETS;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
CHARACTER_SET_NAME varchar(64) NO
|
CHARACTER_SET_NAME varchar(32) NO
|
||||||
DEFAULT_COLLATE_NAME varchar(64) NO
|
DEFAULT_COLLATE_NAME varchar(32) NO
|
||||||
DESCRIPTION varchar(60) NO
|
DESCRIPTION varchar(60) NO
|
||||||
MAXLEN bigint(3) NO 0
|
MAXLEN bigint(3) NO 0
|
||||||
# Testcases 3.2.2.2 and 3.2.2.3 are checked in suite/funcs_1/t/charset_collation*.test
|
# Testcases 3.2.2.2 and 3.2.2.3 are checked in suite/funcs_1/t/charset_collation*.test
|
||||||
|
@ -28,18 +28,18 @@ DROP FUNCTION test.f1;
|
|||||||
#########################################################################
|
#########################################################################
|
||||||
DESCRIBE information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
DESCRIBE information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
COLLATION_NAME varchar(64) NO
|
COLLATION_NAME varchar(32) NO
|
||||||
CHARACTER_SET_NAME varchar(64) NO
|
CHARACTER_SET_NAME varchar(32) NO
|
||||||
SHOW CREATE TABLE information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
SHOW CREATE TABLE information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
COLLATION_CHARACTER_SET_APPLICABILITY CREATE TEMPORARY TABLE `COLLATION_CHARACTER_SET_APPLICABILITY` (
|
COLLATION_CHARACTER_SET_APPLICABILITY CREATE TEMPORARY TABLE `COLLATION_CHARACTER_SET_APPLICABILITY` (
|
||||||
`COLLATION_NAME` varchar(64) NOT NULL DEFAULT '',
|
`COLLATION_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT ''
|
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT ''
|
||||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||||
SHOW COLUMNS FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
SHOW COLUMNS FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
COLLATION_NAME varchar(64) NO
|
COLLATION_NAME varchar(32) NO
|
||||||
CHARACTER_SET_NAME varchar(64) NO
|
CHARACTER_SET_NAME varchar(32) NO
|
||||||
# Testcases 3.2.4.2 and 3.2.4.3 are checked in suite/funcs_1/t/charset_collation*.test
|
# Testcases 3.2.4.2 and 3.2.4.3 are checked in suite/funcs_1/t/charset_collation*.test
|
||||||
########################################################################
|
########################################################################
|
||||||
# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||||
|
@ -28,8 +28,8 @@ DROP FUNCTION test.f1;
|
|||||||
#########################################################################
|
#########################################################################
|
||||||
DESCRIBE information_schema.COLLATIONS;
|
DESCRIBE information_schema.COLLATIONS;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
COLLATION_NAME varchar(64) NO
|
COLLATION_NAME varchar(32) NO
|
||||||
CHARACTER_SET_NAME varchar(64) NO
|
CHARACTER_SET_NAME varchar(32) NO
|
||||||
ID bigint(11) NO 0
|
ID bigint(11) NO 0
|
||||||
IS_DEFAULT varchar(3) NO
|
IS_DEFAULT varchar(3) NO
|
||||||
IS_COMPILED varchar(3) NO
|
IS_COMPILED varchar(3) NO
|
||||||
@ -37,8 +37,8 @@ SORTLEN bigint(3) NO 0
|
|||||||
SHOW CREATE TABLE information_schema.COLLATIONS;
|
SHOW CREATE TABLE information_schema.COLLATIONS;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` (
|
COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` (
|
||||||
`COLLATION_NAME` varchar(64) NOT NULL DEFAULT '',
|
`COLLATION_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`ID` bigint(11) NOT NULL DEFAULT '0',
|
`ID` bigint(11) NOT NULL DEFAULT '0',
|
||||||
`IS_DEFAULT` varchar(3) NOT NULL DEFAULT '',
|
`IS_DEFAULT` varchar(3) NOT NULL DEFAULT '',
|
||||||
`IS_COMPILED` varchar(3) NOT NULL DEFAULT '',
|
`IS_COMPILED` varchar(3) NOT NULL DEFAULT '',
|
||||||
@ -46,8 +46,8 @@ COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` (
|
|||||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||||
SHOW COLUMNS FROM information_schema.COLLATIONS;
|
SHOW COLUMNS FROM information_schema.COLLATIONS;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
COLLATION_NAME varchar(64) NO
|
COLLATION_NAME varchar(32) NO
|
||||||
CHARACTER_SET_NAME varchar(64) NO
|
CHARACTER_SET_NAME varchar(32) NO
|
||||||
ID bigint(11) NO 0
|
ID bigint(11) NO 0
|
||||||
IS_DEFAULT varchar(3) NO
|
IS_DEFAULT varchar(3) NO
|
||||||
IS_COMPILED varchar(3) NO
|
IS_COMPILED varchar(3) NO
|
||||||
|
@ -40,8 +40,8 @@ CHARACTER_MAXIMUM_LENGTH bigint(21) unsigned YES NULL
|
|||||||
CHARACTER_OCTET_LENGTH bigint(21) unsigned YES NULL
|
CHARACTER_OCTET_LENGTH bigint(21) unsigned YES NULL
|
||||||
NUMERIC_PRECISION bigint(21) unsigned YES NULL
|
NUMERIC_PRECISION bigint(21) unsigned YES NULL
|
||||||
NUMERIC_SCALE bigint(21) unsigned YES NULL
|
NUMERIC_SCALE bigint(21) unsigned YES NULL
|
||||||
CHARACTER_SET_NAME varchar(64) YES NULL
|
CHARACTER_SET_NAME varchar(32) YES NULL
|
||||||
COLLATION_NAME varchar(64) YES NULL
|
COLLATION_NAME varchar(32) YES NULL
|
||||||
COLUMN_TYPE longtext NO NULL
|
COLUMN_TYPE longtext NO NULL
|
||||||
COLUMN_KEY varchar(3) NO
|
COLUMN_KEY varchar(3) NO
|
||||||
EXTRA varchar(27) NO
|
EXTRA varchar(27) NO
|
||||||
@ -62,8 +62,8 @@ COLUMNS CREATE TEMPORARY TABLE `COLUMNS` (
|
|||||||
`CHARACTER_OCTET_LENGTH` bigint(21) unsigned DEFAULT NULL,
|
`CHARACTER_OCTET_LENGTH` bigint(21) unsigned DEFAULT NULL,
|
||||||
`NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL,
|
`NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL,
|
||||||
`NUMERIC_SCALE` bigint(21) unsigned DEFAULT NULL,
|
`NUMERIC_SCALE` bigint(21) unsigned DEFAULT NULL,
|
||||||
`CHARACTER_SET_NAME` varchar(64) DEFAULT NULL,
|
`CHARACTER_SET_NAME` varchar(32) DEFAULT NULL,
|
||||||
`COLLATION_NAME` varchar(64) DEFAULT NULL,
|
`COLLATION_NAME` varchar(32) DEFAULT NULL,
|
||||||
`COLUMN_TYPE` longtext NOT NULL,
|
`COLUMN_TYPE` longtext NOT NULL,
|
||||||
`COLUMN_KEY` varchar(3) NOT NULL DEFAULT '',
|
`COLUMN_KEY` varchar(3) NOT NULL DEFAULT '',
|
||||||
`EXTRA` varchar(27) NOT NULL DEFAULT '',
|
`EXTRA` varchar(27) NOT NULL DEFAULT '',
|
||||||
@ -84,8 +84,8 @@ CHARACTER_MAXIMUM_LENGTH bigint(21) unsigned YES NULL
|
|||||||
CHARACTER_OCTET_LENGTH bigint(21) unsigned YES NULL
|
CHARACTER_OCTET_LENGTH bigint(21) unsigned YES NULL
|
||||||
NUMERIC_PRECISION bigint(21) unsigned YES NULL
|
NUMERIC_PRECISION bigint(21) unsigned YES NULL
|
||||||
NUMERIC_SCALE bigint(21) unsigned YES NULL
|
NUMERIC_SCALE bigint(21) unsigned YES NULL
|
||||||
CHARACTER_SET_NAME varchar(64) YES NULL
|
CHARACTER_SET_NAME varchar(32) YES NULL
|
||||||
COLLATION_NAME varchar(64) YES NULL
|
COLLATION_NAME varchar(32) YES NULL
|
||||||
COLUMN_TYPE longtext NO NULL
|
COLUMN_TYPE longtext NO NULL
|
||||||
COLUMN_KEY varchar(3) NO
|
COLUMN_KEY varchar(3) NO
|
||||||
EXTRA varchar(27) NO
|
EXTRA varchar(27) NO
|
||||||
|
@ -3,22 +3,22 @@ WHERE table_schema = 'information_schema'
|
|||||||
AND table_name <> 'profiling'
|
AND table_name <> 'profiling'
|
||||||
ORDER BY table_schema, table_name, column_name;
|
ORDER BY table_schema, table_name, column_name;
|
||||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||||
NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
|
NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
|
||||||
NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
|
NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
|
||||||
NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
|
NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
|
||||||
NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||||
NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||||
NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
|
NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
|
||||||
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
|
NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
|
||||||
NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||||
NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||||
@ -110,9 +110,9 @@ NULL information_schema FILES UPDATE_COUNT 13 NULL YES bigint NULL NULL 19 0 NUL
|
|||||||
NULL information_schema FILES UPDATE_TIME 34 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema FILES UPDATE_TIME 34 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema FILES VERSION 25 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES VERSION 25 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema GLOBAL_STATUS VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema GLOBAL_STATUS VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema GLOBAL_STATUS VARIABLE_VALUE 2 NULL YES varchar 20480 61440 NULL NULL utf8 utf8_general_ci varchar(20480) select
|
NULL information_schema GLOBAL_STATUS VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024) select
|
||||||
NULL information_schema GLOBAL_VARIABLES VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema GLOBAL_VARIABLES VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema GLOBAL_VARIABLES VARIABLE_VALUE 2 NULL YES varchar 20480 61440 NULL NULL utf8 utf8_general_ci varchar(20480) select
|
NULL information_schema GLOBAL_VARIABLES VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024) select
|
||||||
NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||||
NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
@ -200,11 +200,11 @@ NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8
|
|||||||
NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
|
NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
|
||||||
NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
NULL information_schema ROUTINES SQL_MODE 18 NO varchar 8192 24576 NULL NULL utf8 utf8_general_ci varchar(8192) select
|
||||||
NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||||
NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||||
NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
|
NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
|
||||||
@ -213,9 +213,9 @@ NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NU
|
|||||||
NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||||
NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema SESSION_STATUS VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema SESSION_STATUS VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema SESSION_STATUS VARIABLE_VALUE 2 NULL YES varchar 20480 61440 NULL NULL utf8 utf8_general_ci varchar(20480) select
|
NULL information_schema SESSION_STATUS VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024) select
|
||||||
NULL information_schema SESSION_VARIABLES VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema SESSION_VARIABLES VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema SESSION_VARIABLES VARIABLE_VALUE 2 NULL YES varchar 20480 61440 NULL NULL utf8 utf8_general_ci varchar(20480) select
|
NULL information_schema SESSION_VARIABLES VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024) select
|
||||||
NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
|
NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
|
||||||
NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
|
NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
|
||||||
NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
@ -244,7 +244,7 @@ NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NU
|
|||||||
NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
|
NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
|
||||||
NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||||
NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
||||||
NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
||||||
@ -357,18 +357,18 @@ WHERE table_schema = 'information_schema'
|
|||||||
AND table_name <> 'profiling'
|
AND table_name <> 'profiling'
|
||||||
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
||||||
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
||||||
3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
3.0000 information_schema CHARACTER_SETS DESCRIPTION varchar 60 180 utf8 utf8_general_ci varchar(60)
|
3.0000 information_schema CHARACTER_SETS DESCRIPTION varchar 60 180 utf8 utf8_general_ci varchar(60)
|
||||||
NULL information_schema CHARACTER_SETS MAXLEN bigint NULL NULL NULL NULL bigint(3)
|
NULL information_schema CHARACTER_SETS MAXLEN bigint NULL NULL NULL NULL bigint(3)
|
||||||
3.0000 information_schema COLLATIONS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema COLLATIONS COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
3.0000 information_schema COLLATIONS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema COLLATIONS CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11)
|
NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11)
|
||||||
3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8 utf8_general_ci varchar(3)
|
3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||||
3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(3)
|
3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||||
NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3)
|
NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3)
|
||||||
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
3.0000 information_schema COLUMNS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
3.0000 information_schema COLUMNS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||||
3.0000 information_schema COLUMNS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema COLUMNS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema COLUMNS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema COLUMNS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
@ -381,8 +381,8 @@ NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH bigint NULL NULL NULL N
|
|||||||
NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||||
NULL information_schema COLUMNS NUMERIC_PRECISION bigint NULL NULL NULL NULL bigint(21) unsigned
|
NULL information_schema COLUMNS NUMERIC_PRECISION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||||
NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint(21) unsigned
|
NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||||
3.0000 information_schema COLUMNS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema COLUMNS CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
3.0000 information_schema COLUMNS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema COLUMNS COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||||
3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3)
|
3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||||
3.0000 information_schema COLUMNS EXTRA varchar 27 81 utf8 utf8_general_ci varchar(27)
|
3.0000 information_schema COLUMNS EXTRA varchar 27 81 utf8 utf8_general_ci varchar(27)
|
||||||
@ -464,9 +464,9 @@ NULL information_schema FILES CHECKSUM bigint NULL NULL NULL NULL bigint(21) uns
|
|||||||
3.0000 information_schema FILES STATUS varchar 20 60 utf8 utf8_general_ci varchar(20)
|
3.0000 information_schema FILES STATUS varchar 20 60 utf8 utf8_general_ci varchar(20)
|
||||||
3.0000 information_schema FILES EXTRA varchar 255 765 utf8 utf8_general_ci varchar(255)
|
3.0000 information_schema FILES EXTRA varchar 255 765 utf8 utf8_general_ci varchar(255)
|
||||||
3.0000 information_schema GLOBAL_STATUS VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema GLOBAL_STATUS VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema GLOBAL_STATUS VARIABLE_VALUE varchar 20480 61440 utf8 utf8_general_ci varchar(20480)
|
3.0000 information_schema GLOBAL_STATUS VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||||
3.0000 information_schema GLOBAL_VARIABLES VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema GLOBAL_VARIABLES VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema GLOBAL_VARIABLES VARIABLE_VALUE varchar 20480 61440 utf8 utf8_general_ci varchar(20480)
|
3.0000 information_schema GLOBAL_VARIABLES VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||||
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||||
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
@ -550,7 +550,7 @@ NULL information_schema PROCESSLIST TIME bigint NULL NULL NULL NULL bigint(7)
|
|||||||
3.0000 information_schema ROUTINES SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
|
3.0000 information_schema ROUTINES SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
|
||||||
NULL information_schema ROUTINES CREATED datetime NULL NULL NULL NULL datetime
|
NULL information_schema ROUTINES CREATED datetime NULL NULL NULL NULL datetime
|
||||||
NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datetime
|
NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datetime
|
||||||
1.0000 information_schema ROUTINES SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
3.0000 information_schema ROUTINES SQL_MODE varchar 8192 24576 utf8 utf8_general_ci varchar(8192)
|
||||||
3.0000 information_schema ROUTINES ROUTINE_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema ROUTINES ROUTINE_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema ROUTINES DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
|
3.0000 information_schema ROUTINES DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
|
||||||
3.0000 information_schema ROUTINES CHARACTER_SET_CLIENT varchar 32 96 utf8 utf8_general_ci varchar(32)
|
3.0000 information_schema ROUTINES CHARACTER_SET_CLIENT varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
@ -558,8 +558,8 @@ NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datet
|
|||||||
3.0000 information_schema ROUTINES DATABASE_COLLATION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
3.0000 information_schema ROUTINES DATABASE_COLLATION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
3.0000 information_schema SCHEMATA CATALOG_NAME varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
3.0000 information_schema SCHEMATA CATALOG_NAME varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||||
3.0000 information_schema SCHEMATA SCHEMA_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema SCHEMATA SCHEMA_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
3.0000 information_schema SCHEMATA DEFAULT_COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema SCHEMATA DEFAULT_COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
3.0000 information_schema SCHEMATA SQL_PATH varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
3.0000 information_schema SCHEMATA SQL_PATH varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||||
3.0000 information_schema SCHEMA_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
|
3.0000 information_schema SCHEMA_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
|
||||||
3.0000 information_schema SCHEMA_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
3.0000 information_schema SCHEMA_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||||
@ -567,9 +567,9 @@ NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datet
|
|||||||
3.0000 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||||
3.0000 information_schema SESSION_STATUS VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema SESSION_STATUS VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema SESSION_STATUS VARIABLE_VALUE varchar 20480 61440 utf8 utf8_general_ci varchar(20480)
|
3.0000 information_schema SESSION_STATUS VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||||
3.0000 information_schema SESSION_VARIABLES VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema SESSION_VARIABLES VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema SESSION_VARIABLES VARIABLE_VALUE varchar 20480 61440 utf8 utf8_general_ci varchar(20480)
|
3.0000 information_schema SESSION_VARIABLES VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||||
3.0000 information_schema STATISTICS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
3.0000 information_schema STATISTICS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||||
3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
@ -602,7 +602,7 @@ NULL information_schema TABLES AUTO_INCREMENT bigint NULL NULL NULL NULL bigint(
|
|||||||
NULL information_schema TABLES CREATE_TIME datetime NULL NULL NULL NULL datetime
|
NULL information_schema TABLES CREATE_TIME datetime NULL NULL NULL NULL datetime
|
||||||
NULL information_schema TABLES UPDATE_TIME datetime NULL NULL NULL NULL datetime
|
NULL information_schema TABLES UPDATE_TIME datetime NULL NULL NULL NULL datetime
|
||||||
NULL information_schema TABLES CHECK_TIME datetime NULL NULL NULL NULL datetime
|
NULL information_schema TABLES CHECK_TIME datetime NULL NULL NULL NULL datetime
|
||||||
3.0000 information_schema TABLES TABLE_COLLATION varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema TABLES TABLE_COLLATION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||||
NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21) unsigned
|
NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||||
3.0000 information_schema TABLES CREATE_OPTIONS varchar 255 765 utf8 utf8_general_ci varchar(255)
|
3.0000 information_schema TABLES CREATE_OPTIONS varchar 255 765 utf8 utf8_general_ci varchar(255)
|
||||||
3.0000 information_schema TABLES TABLE_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80)
|
3.0000 information_schema TABLES TABLE_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||||
|
@ -45,7 +45,7 @@ SQL_PATH varchar(64) YES NULL
|
|||||||
SECURITY_TYPE varchar(7) NO
|
SECURITY_TYPE varchar(7) NO
|
||||||
CREATED datetime NO 0000-00-00 00:00:00
|
CREATED datetime NO 0000-00-00 00:00:00
|
||||||
LAST_ALTERED datetime NO 0000-00-00 00:00:00
|
LAST_ALTERED datetime NO 0000-00-00 00:00:00
|
||||||
SQL_MODE longtext NO NULL
|
SQL_MODE varchar(8192) NO
|
||||||
ROUTINE_COMMENT varchar(64) NO
|
ROUTINE_COMMENT varchar(64) NO
|
||||||
DEFINER varchar(77) NO
|
DEFINER varchar(77) NO
|
||||||
CHARACTER_SET_CLIENT varchar(32) NO
|
CHARACTER_SET_CLIENT varchar(32) NO
|
||||||
@ -71,7 +71,7 @@ ROUTINES CREATE TEMPORARY TABLE `ROUTINES` (
|
|||||||
`SECURITY_TYPE` varchar(7) NOT NULL DEFAULT '',
|
`SECURITY_TYPE` varchar(7) NOT NULL DEFAULT '',
|
||||||
`CREATED` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
`CREATED` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||||
`LAST_ALTERED` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
`LAST_ALTERED` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||||
`SQL_MODE` longtext NOT NULL,
|
`SQL_MODE` varchar(8192) NOT NULL DEFAULT '',
|
||||||
`ROUTINE_COMMENT` varchar(64) NOT NULL DEFAULT '',
|
`ROUTINE_COMMENT` varchar(64) NOT NULL DEFAULT '',
|
||||||
`DEFINER` varchar(77) NOT NULL DEFAULT '',
|
`DEFINER` varchar(77) NOT NULL DEFAULT '',
|
||||||
`CHARACTER_SET_CLIENT` varchar(32) NOT NULL DEFAULT '',
|
`CHARACTER_SET_CLIENT` varchar(32) NOT NULL DEFAULT '',
|
||||||
@ -97,7 +97,7 @@ SQL_PATH varchar(64) YES NULL
|
|||||||
SECURITY_TYPE varchar(7) NO
|
SECURITY_TYPE varchar(7) NO
|
||||||
CREATED datetime NO 0000-00-00 00:00:00
|
CREATED datetime NO 0000-00-00 00:00:00
|
||||||
LAST_ALTERED datetime NO 0000-00-00 00:00:00
|
LAST_ALTERED datetime NO 0000-00-00 00:00:00
|
||||||
SQL_MODE longtext NO NULL
|
SQL_MODE varchar(8192) NO
|
||||||
ROUTINE_COMMENT varchar(64) NO
|
ROUTINE_COMMENT varchar(64) NO
|
||||||
DEFINER varchar(77) NO
|
DEFINER varchar(77) NO
|
||||||
CHARACTER_SET_CLIENT varchar(32) NO
|
CHARACTER_SET_CLIENT varchar(32) NO
|
||||||
|
@ -30,24 +30,24 @@ DESCRIBE information_schema.SCHEMATA;
|
|||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
CATALOG_NAME varchar(512) YES NULL
|
CATALOG_NAME varchar(512) YES NULL
|
||||||
SCHEMA_NAME varchar(64) NO
|
SCHEMA_NAME varchar(64) NO
|
||||||
DEFAULT_CHARACTER_SET_NAME varchar(64) NO
|
DEFAULT_CHARACTER_SET_NAME varchar(32) NO
|
||||||
DEFAULT_COLLATION_NAME varchar(64) NO
|
DEFAULT_COLLATION_NAME varchar(32) NO
|
||||||
SQL_PATH varchar(512) YES NULL
|
SQL_PATH varchar(512) YES NULL
|
||||||
SHOW CREATE TABLE information_schema.SCHEMATA;
|
SHOW CREATE TABLE information_schema.SCHEMATA;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
SCHEMATA CREATE TEMPORARY TABLE `SCHEMATA` (
|
SCHEMATA CREATE TEMPORARY TABLE `SCHEMATA` (
|
||||||
`CATALOG_NAME` varchar(512) DEFAULT NULL,
|
`CATALOG_NAME` varchar(512) DEFAULT NULL,
|
||||||
`SCHEMA_NAME` varchar(64) NOT NULL DEFAULT '',
|
`SCHEMA_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||||
`DEFAULT_CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
`DEFAULT_CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`DEFAULT_COLLATION_NAME` varchar(64) NOT NULL DEFAULT '',
|
`DEFAULT_COLLATION_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||||
`SQL_PATH` varchar(512) DEFAULT NULL
|
`SQL_PATH` varchar(512) DEFAULT NULL
|
||||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||||
SHOW COLUMNS FROM information_schema.SCHEMATA;
|
SHOW COLUMNS FROM information_schema.SCHEMATA;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
CATALOG_NAME varchar(512) YES NULL
|
CATALOG_NAME varchar(512) YES NULL
|
||||||
SCHEMA_NAME varchar(64) NO
|
SCHEMA_NAME varchar(64) NO
|
||||||
DEFAULT_CHARACTER_SET_NAME varchar(64) NO
|
DEFAULT_CHARACTER_SET_NAME varchar(32) NO
|
||||||
DEFAULT_COLLATION_NAME varchar(64) NO
|
DEFAULT_COLLATION_NAME varchar(32) NO
|
||||||
SQL_PATH varchar(512) YES NULL
|
SQL_PATH varchar(512) YES NULL
|
||||||
SELECT catalog_name, schema_name, sql_path
|
SELECT catalog_name, schema_name, sql_path
|
||||||
FROM information_schema.schemata
|
FROM information_schema.schemata
|
||||||
|
@ -45,7 +45,7 @@ AUTO_INCREMENT bigint(21) unsigned YES NULL
|
|||||||
CREATE_TIME datetime YES NULL
|
CREATE_TIME datetime YES NULL
|
||||||
UPDATE_TIME datetime YES NULL
|
UPDATE_TIME datetime YES NULL
|
||||||
CHECK_TIME datetime YES NULL
|
CHECK_TIME datetime YES NULL
|
||||||
TABLE_COLLATION varchar(64) YES NULL
|
TABLE_COLLATION varchar(32) YES NULL
|
||||||
CHECKSUM bigint(21) unsigned YES NULL
|
CHECKSUM bigint(21) unsigned YES NULL
|
||||||
CREATE_OPTIONS varchar(255) YES NULL
|
CREATE_OPTIONS varchar(255) YES NULL
|
||||||
TABLE_COMMENT varchar(80) NO
|
TABLE_COMMENT varchar(80) NO
|
||||||
@ -69,7 +69,7 @@ TABLES CREATE TEMPORARY TABLE `TABLES` (
|
|||||||
`CREATE_TIME` datetime DEFAULT NULL,
|
`CREATE_TIME` datetime DEFAULT NULL,
|
||||||
`UPDATE_TIME` datetime DEFAULT NULL,
|
`UPDATE_TIME` datetime DEFAULT NULL,
|
||||||
`CHECK_TIME` datetime DEFAULT NULL,
|
`CHECK_TIME` datetime DEFAULT NULL,
|
||||||
`TABLE_COLLATION` varchar(64) DEFAULT NULL,
|
`TABLE_COLLATION` varchar(32) DEFAULT NULL,
|
||||||
`CHECKSUM` bigint(21) unsigned DEFAULT NULL,
|
`CHECKSUM` bigint(21) unsigned DEFAULT NULL,
|
||||||
`CREATE_OPTIONS` varchar(255) DEFAULT NULL,
|
`CREATE_OPTIONS` varchar(255) DEFAULT NULL,
|
||||||
`TABLE_COMMENT` varchar(80) NOT NULL DEFAULT ''
|
`TABLE_COMMENT` varchar(80) NOT NULL DEFAULT ''
|
||||||
@ -93,7 +93,7 @@ AUTO_INCREMENT bigint(21) unsigned YES NULL
|
|||||||
CREATE_TIME datetime YES NULL
|
CREATE_TIME datetime YES NULL
|
||||||
UPDATE_TIME datetime YES NULL
|
UPDATE_TIME datetime YES NULL
|
||||||
CHECK_TIME datetime YES NULL
|
CHECK_TIME datetime YES NULL
|
||||||
TABLE_COLLATION varchar(64) YES NULL
|
TABLE_COLLATION varchar(32) YES NULL
|
||||||
CHECKSUM bigint(21) unsigned YES NULL
|
CHECKSUM bigint(21) unsigned YES NULL
|
||||||
CREATE_OPTIONS varchar(255) YES NULL
|
CREATE_OPTIONS varchar(255) YES NULL
|
||||||
TABLE_COMMENT varchar(80) NO
|
TABLE_COMMENT varchar(80) NO
|
||||||
@ -310,6 +310,7 @@ SELECT UPDATE_TIME, checksum INTO @UPDATE_TIME, @checksum
|
|||||||
FROM information_schema.tables
|
FROM information_schema.tables
|
||||||
WHERE table_name = 't1_my_tablex';
|
WHERE table_name = 't1_my_tablex';
|
||||||
INSERT INTO db_datadict.t1_my_tablex SET f1 = 3;
|
INSERT INTO db_datadict.t1_my_tablex SET f1 = 3;
|
||||||
|
FLUSH TABLES;
|
||||||
SELECT UPDATE_TIME > @UPDATE_TIME
|
SELECT UPDATE_TIME > @UPDATE_TIME
|
||||||
AS "Is current UPDATE_TIME bigger than before last INSERT?"
|
AS "Is current UPDATE_TIME bigger than before last INSERT?"
|
||||||
FROM information_schema.tables
|
FROM information_schema.tables
|
||||||
|
@ -185,7 +185,7 @@ let $message= use db with trigger privilege on db level and without...:;
|
|||||||
select f1 from t1 order by f1;
|
select f1 from t1 order by f1;
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
disconnect no_privs;
|
disconnect no_privs;
|
||||||
--enable warnings
|
--enable_warnings
|
||||||
|
|
||||||
connection yes_privs;
|
connection yes_privs;
|
||||||
select current_user;
|
select current_user;
|
||||||
|
2
mysql-test/t/ctype_filesystem-master.opt
Normal file
2
mysql-test/t/ctype_filesystem-master.opt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
--character-sets-dir=$MYSQL_TEST_DIR/ß
|
||||||
|
--character-set-filesystem=latin1
|
6
mysql-test/t/ctype_filesystem.test
Normal file
6
mysql-test/t/ctype_filesystem.test
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
SET CHARACTER SET utf8;
|
||||||
|
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||||
|
SHOW VARIABLES like 'character_sets_dir';
|
||||||
|
SHOW VARIABLES like 'character_set_filesystem';
|
||||||
|
SHOW VARIABLES like 'character_set_client';
|
||||||
|
SET CHARACTER SET default;
|
@ -1439,3 +1439,20 @@ select hex(_utf8 X'616263FF');
|
|||||||
select hex(_utf8 B'001111111111');
|
select hex(_utf8 B'001111111111');
|
||||||
--error ER_INVALID_CHARACTER_STRING
|
--error ER_INVALID_CHARACTER_STRING
|
||||||
select (_utf8 X'616263FF');
|
select (_utf8 X'616263FF');
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #36772: When using UTF8, CONVERT with GROUP BY returns truncated results
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES (70000, 1092), (70001, 1085), (70002, 1065);
|
||||||
|
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||||
|
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1;
|
||||||
|
ALTER TABLE t1 ADD UNIQUE (b);
|
||||||
|
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||||
|
DROP INDEX b ON t1;
|
||||||
|
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||||
|
ALTER TABLE t1 ADD INDEX (b);
|
||||||
|
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) from t1 GROUP BY b;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo End of 5.0 tests
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
federated_transactions : Bug#29523 Transactions do not work
|
federated_transactions : Bug#29523 Transactions do not work
|
||||||
csv_alter_table : Bug#33696 2008-01-21 pcrews no .result file - bug allows NULL columns in CSV tables
|
|
||||||
log_tables.test : Bug #37798: main.log_tables fails randomly on powermacg5 and windows
|
log_tables.test : Bug #37798: main.log_tables fails randomly on powermacg5 and windows
|
||||||
wait_timeout_func : BUG#36873 2008-07-06 sven wait_timeout_func.test fails randomly
|
wait_timeout_func : BUG#36873 2008-07-06 sven wait_timeout_func.test fails randomly
|
||||||
delayed_insert_limit_func : BUG#37962 2008-07-08 sven *_func tests containing sleeps/race conditions
|
delayed_insert_limit_func : BUG#37962 2008-07-08 sven *_func tests containing sleeps/race conditions
|
||||||
@ -25,3 +24,4 @@ timestamp_func : BUG#37962 2008-07-08 sven *_func tests c
|
|||||||
log_output_func : BUG#37766 2008-07-10 sven main.log_output_func randomly fails in pushbuild
|
log_output_func : BUG#37766 2008-07-10 sven main.log_output_func randomly fails in pushbuild
|
||||||
slow_query_log_func.test : Bug #37962: *_func tests containing sleeps/race conditions
|
slow_query_log_func.test : Bug #37962: *_func tests containing sleeps/race conditions
|
||||||
innodb_max_dirty_pages_pct_func : BUG#41018 BUG#39382 2008-12-02 sven test fails often. some failures fill up the disk, causing subsequent failures in many other tests
|
innodb_max_dirty_pages_pct_func : BUG#41018 BUG#39382 2008-12-02 sven test fails often. some failures fill up the disk, causing subsequent failures in many other tests
|
||||||
|
wait_timeout_func : Bug #41225 joro wait_timeout_func fails
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
# Can't test with embedded server that doesn't support grants
|
# Can't test with embedded server that doesn't support events
|
||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
CREATE DATABASE IF NOT EXISTS events_test;
|
CREATE DATABASE IF NOT EXISTS events_test;
|
||||||
USE events_test;
|
USE events_test;
|
||||||
|
|
||||||
|
SET @event_scheduler=@@global.event_scheduler;
|
||||||
SET GLOBAL event_scheduler=OFF;
|
SET GLOBAL event_scheduler=OFF;
|
||||||
--echo Try agian to make sure it's allowed
|
--echo Try again to make sure it's allowed
|
||||||
SET GLOBAL event_scheduler=OFF;
|
SET GLOBAL event_scheduler=OFF;
|
||||||
SHOW VARIABLES LIKE 'event_scheduler';
|
SHOW VARIABLES LIKE 'event_scheduler';
|
||||||
SET GLOBAL event_scheduler=1;
|
SET GLOBAL event_scheduler=1;
|
||||||
@ -57,34 +58,44 @@ ON COMPLETION PRESERVE
|
|||||||
DO
|
DO
|
||||||
INSERT INTO table_4 VALUES (1);
|
INSERT INTO table_4 VALUES (1);
|
||||||
|
|
||||||
|
# Wait for the events to fire and check the data afterwards
|
||||||
|
|
||||||
# Let event_1 insert at least 4 records into the table
|
# Let event_1 insert at least 4 records into the table
|
||||||
let $wait_condition=select count(*) >= 4 from table_1;
|
let $wait_condition=select count(*) >= 4 from table_1;
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
|
# Minimum of passed time is 6 seconds assuming
|
||||||
|
# - event executions starts immediate after creation
|
||||||
|
# - 4 times event_1 means an insert at ect, ect+2, ect+4, ect+6
|
||||||
|
# ect = event creation time
|
||||||
|
|
||||||
# Let event_2 reach the end of its execution interval
|
# Let event_2 reach the end of its execution interval
|
||||||
let $wait_condition=select count(*) = 0 from information_schema.events
|
let $wait_condition=select count(*) = 0 from information_schema.events
|
||||||
where event_name='event_2' and status='enabled';
|
where event_name='event_2' and status='enabled';
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
|
# Minimum of passed time is 6 seconds.
|
||||||
|
# See wait_condition for event_1 above and ENDS condition for event_2.
|
||||||
|
|
||||||
# Let event_3, which is ON COMPLETION NOT PRESERVE execute and drop itself
|
# Let event_3, which is ON COMPLETION NOT PRESERVE execute and drop itself
|
||||||
let $wait_condition=select count(*) = 0 from information_schema.events
|
let $wait_condition=select count(*) = 0 from information_schema.events
|
||||||
where event_name='event_3';
|
where event_name='event_3';
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
# Let event_4 reach the end of its execution interval
|
# Let event_4 reach the end of its execution interval
|
||||||
let $wait_condition=select count(*) = 0 from information_schema.events
|
let $wait_condition=select count(*) = 0 from information_schema.events
|
||||||
where event_name='event_4' and status='enabled';
|
where event_name='event_4' and status='enabled';
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
# Wait for the events to fire and check the data afterwards
|
|
||||||
|
|
||||||
let $wait_condition=SELECT SUM(a) >= 4 FROM table_1;
|
let $wait_condition=SELECT SUM(a) >= 4 FROM table_1;
|
||||||
source include/wait_condition.inc;
|
source include/wait_condition.inc;
|
||||||
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_1;
|
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_1;
|
||||||
|
|
||||||
let $wait_condition=SELECT SUM(a) >= 5 FROM table_2;
|
# In case of a testing box under heavy load it cannot be guaranteed that
|
||||||
|
# it is really often enough checked if event_2 has to be executed.
|
||||||
|
# -> Bug#39854 events_scheduling fails sporadically on pushbuild
|
||||||
|
# Therefore we lowered here the original expectation of 5 to 4.
|
||||||
|
let $wait_condition=SELECT SUM(a) >= 4 FROM table_2;
|
||||||
source include/wait_condition.inc;
|
source include/wait_condition.inc;
|
||||||
SELECT IF(SUM(a) >= 5, 'OK', 'ERROR') FROM table_2;
|
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_2;
|
||||||
|
|
||||||
let $wait_condition=SELECT SUM(a) >= 1 FROM table_3;
|
let $wait_condition=SELECT SUM(a) >= 1 FROM table_3;
|
||||||
source include/wait_condition.inc;
|
source include/wait_condition.inc;
|
||||||
@ -112,9 +123,9 @@ DROP TABLE table_2;
|
|||||||
DROP TABLE table_3;
|
DROP TABLE table_3;
|
||||||
DROP TABLE table_4;
|
DROP TABLE table_4;
|
||||||
DROP DATABASE events_test;
|
DROP DATABASE events_test;
|
||||||
SET GLOBAL event_scheduler=OFF;
|
SET GLOBAL event_scheduler=@event_scheduler;
|
||||||
|
|
||||||
#
|
#
|
||||||
# End of tests
|
# End of tests
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@ -1,11 +1,40 @@
|
|||||||
# This test case is sensitive to execution timing. You may control
|
# 1. This test case is sensitive to execution timing. You may control
|
||||||
# this sensitivity by the parameter below. Small values will result
|
# this sensitivity by the parameter below. Small values will result
|
||||||
# in fast but more unstable execution, large values will improve
|
# in fast but more unstable execution, large values will improve
|
||||||
# stability at the cost of speed. Basically, N is a number of seconds
|
# stability at the cost of speed. Basically, N is a number of seconds
|
||||||
# to wait for operation to complete. Should be positive. Test runs
|
# to wait for operation to complete. Should be positive. Test runs
|
||||||
# about 25*N seconds (it sleeps most of the time, so CPU speed is not
|
# about 25*N seconds (it sleeps most of the time, so CPU speed is not
|
||||||
# relevant).
|
# relevant).
|
||||||
let $N = 5;
|
let $N = 5;
|
||||||
|
#
|
||||||
|
# 2. Some subtests
|
||||||
|
# - create a new time zone
|
||||||
|
# - run some statements
|
||||||
|
# - delete the new time zone.
|
||||||
|
# But the time zone name used gets somewhere cached and it cannot be
|
||||||
|
# "reused" later in the same or another session for a new time zone.
|
||||||
|
# Experiments (2008-11 MySQL 5.1) showed that none of the available
|
||||||
|
# RESET/FLUSH commands removes these entries.
|
||||||
|
# 2008-11 MySQL 5.1 Bug#39979 main.events_time_zone does not clean up
|
||||||
|
# second bad effect
|
||||||
|
# Therefore we compute unique and unusual timezone names to minimize
|
||||||
|
# the likelihood that a later test uses the same name.
|
||||||
|
#
|
||||||
|
# 3. The subtests mentioned in 2. cause that the AUTO_INCREMENT value
|
||||||
|
# within "SHOW CREATE TABLE mysql.timezone" differ from the initial one.
|
||||||
|
# (Bug#39979 main.events_time_zone does not clean up)
|
||||||
|
# Therefore we reset this value after each of these subtests.
|
||||||
|
#
|
||||||
|
# Note(mleich):
|
||||||
|
# There is a significant likelihood that future improvements of the server
|
||||||
|
# cause that the solutions for the issues mentioned in 2. and 3. will no
|
||||||
|
# more work.
|
||||||
|
# A mysql-test-run.pl feature which allows to enforce
|
||||||
|
# 1. Server shutdown (-> Problem mentioned in 2. disappears)
|
||||||
|
# 2. Reset all data to initial state (-> Problem mentioned in 3. disappears)
|
||||||
|
# 3. Server start
|
||||||
|
# after a tests would be a perfect replacement.
|
||||||
|
#
|
||||||
|
|
||||||
--source include/big_test.inc
|
--source include/big_test.inc
|
||||||
|
|
||||||
@ -73,19 +102,15 @@ delimiter ;//
|
|||||||
SET @step3= @step * 3;
|
SET @step3= @step * 3;
|
||||||
SET @step6= @step * 6;
|
SET @step6= @step * 6;
|
||||||
|
|
||||||
# Disable query log to hide current time.
|
|
||||||
--disable_query_log
|
|
||||||
SET @unix_time= UNIX_TIMESTAMP() - 1;
|
SET @unix_time= UNIX_TIMESTAMP() - 1;
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
SET @unix_time= @unix_time - @unix_time % @step6;
|
SET @unix_time= @unix_time - @unix_time % @step6;
|
||||||
|
|
||||||
INSERT INTO mysql.time_zone VALUES (NULL, 'N');
|
INSERT INTO mysql.time_zone VALUES (NULL, 'N');
|
||||||
SET @tzid= LAST_INSERT_ID();
|
SET @tzid= LAST_INSERT_ID();
|
||||||
INSERT INTO mysql.time_zone_transition_type
|
INSERT INTO mysql.time_zone_transition_type
|
||||||
VALUES (@tzid, 0, 0, 0, 'b16420_0');
|
VALUES (@tzid, 0, 0, 0, 'b16420_0');
|
||||||
INSERT INTO mysql.time_zone_transition_type
|
INSERT INTO mysql.time_zone_transition_type
|
||||||
VALUES (@tzid, 1, @step3 - @step, 1, 'b16420_1');
|
VALUES (@tzid, 1, @step3 - @step, 1, 'b16420_1');
|
||||||
|
|
||||||
let $transition_unix_time= `SELECT @unix_time`;
|
let $transition_unix_time= `SELECT @unix_time`;
|
||||||
let $count= 30;
|
let $count= 30;
|
||||||
@ -99,7 +124,9 @@ while ($count)
|
|||||||
dec $count;
|
dec $count;
|
||||||
}
|
}
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
INSERT INTO mysql.time_zone_name VALUES ('bug16420', @tzid);
|
let $tz_name = `SELECT CONCAT('b16420_a',UNIX_TIMESTAMP())`;
|
||||||
|
--replace_result $tz_name <TZ_NAME_1>
|
||||||
|
eval INSERT INTO mysql.time_zone_name VALUES ('$tz_name', @tzid);
|
||||||
|
|
||||||
CREATE TABLE t1 (count INT, unix_time INT, local_time INT, comment CHAR(80));
|
CREATE TABLE t1 (count INT, unix_time INT, local_time INT, comment CHAR(80));
|
||||||
CREATE TABLE t2 (count INT);
|
CREATE TABLE t2 (count INT);
|
||||||
@ -135,7 +162,8 @@ SET TIME_ZONE= '+00:00';
|
|||||||
CREATE EVENT e1 ON SCHEDULE EVERY @step SECOND
|
CREATE EVENT e1 ON SCHEDULE EVERY @step SECOND
|
||||||
STARTS FROM_UNIXTIME(@unix_time) DO SELECT f1("<e1>");
|
STARTS FROM_UNIXTIME(@unix_time) DO SELECT f1("<e1>");
|
||||||
|
|
||||||
SET TIME_ZONE= 'bug16420';
|
--replace_result $tz_name <TZ_NAME_1>
|
||||||
|
eval SET TIME_ZONE= '$tz_name';
|
||||||
CREATE EVENT e2 ON SCHEDULE EVERY @step SECOND
|
CREATE EVENT e2 ON SCHEDULE EVERY @step SECOND
|
||||||
STARTS FROM_UNIXTIME(@unix_time) DO SELECT f1("<e2>");
|
STARTS FROM_UNIXTIME(@unix_time) DO SELECT f1("<e2>");
|
||||||
|
|
||||||
@ -196,6 +224,8 @@ DELETE FROM mysql.time_zone_name WHERE time_zone_id = @tzid;
|
|||||||
DELETE FROM mysql.time_zone_transition_type WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone_transition_type WHERE time_zone_id = @tzid;
|
||||||
DELETE FROM mysql.time_zone_transition WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone_transition WHERE time_zone_id = @tzid;
|
||||||
DELETE FROM mysql.time_zone WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone WHERE time_zone_id = @tzid;
|
||||||
|
let $time_zone_auto_inc = `SELECT MAX(Time_zone_id) + 1 FROM mysql.time_zone`;
|
||||||
|
eval ALTER TABLE mysql.time_zone AUTO_INCREMENT = $time_zone_auto_inc;
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
@ -216,13 +246,13 @@ SET @offset_month_03= UNIX_TIMESTAMP('2030-03-31 12:00:00') - @now - 5*@step;
|
|||||||
SET @offset_month_04= UNIX_TIMESTAMP('2030-04-30 12:00:00') - @now - 13*@step;
|
SET @offset_month_04= UNIX_TIMESTAMP('2030-04-30 12:00:00') - @now - 13*@step;
|
||||||
|
|
||||||
INSERT INTO mysql.time_zone_transition_type
|
INSERT INTO mysql.time_zone_transition_type
|
||||||
VALUES (@tzid, 0, @offset_month_01, 0, 'b16420_0');
|
VALUES (@tzid, 0, @offset_month_01, 0, 'b16420_0');
|
||||||
INSERT INTO mysql.time_zone_transition_type
|
INSERT INTO mysql.time_zone_transition_type
|
||||||
VALUES (@tzid, 1, @offset_month_02, 1, 'b16420_1');
|
VALUES (@tzid, 1, @offset_month_02, 1, 'b16420_1');
|
||||||
INSERT INTO mysql.time_zone_transition_type
|
INSERT INTO mysql.time_zone_transition_type
|
||||||
VALUES (@tzid, 2, @offset_month_03, 1, 'b16420_2');
|
VALUES (@tzid, 2, @offset_month_03, 1, 'b16420_2');
|
||||||
INSERT INTO mysql.time_zone_transition_type
|
INSERT INTO mysql.time_zone_transition_type
|
||||||
VALUES (@tzid, 3, @offset_month_04, 1, 'b16420_3');
|
VALUES (@tzid, 3, @offset_month_04, 1, 'b16420_3');
|
||||||
INSERT INTO mysql.time_zone_transition
|
INSERT INTO mysql.time_zone_transition
|
||||||
VALUES (@tzid, @now, 0);
|
VALUES (@tzid, @now, 0);
|
||||||
INSERT INTO mysql.time_zone_transition
|
INSERT INTO mysql.time_zone_transition
|
||||||
@ -231,11 +261,12 @@ INSERT INTO mysql.time_zone_transition
|
|||||||
VALUES (@tzid, @now + 7 * @step, 2);
|
VALUES (@tzid, @now + 7 * @step, 2);
|
||||||
INSERT INTO mysql.time_zone_transition
|
INSERT INTO mysql.time_zone_transition
|
||||||
VALUES (@tzid, @now + 12 * @step, 3);
|
VALUES (@tzid, @now + 12 * @step, 3);
|
||||||
# We have to user a new time zone name, because 'bug16420' has been
|
let $tz_name = `SELECT CONCAT('b16420_b',UNIX_TIMESTAMP())`;
|
||||||
# cached already.
|
--replace_result $tz_name <TZ_NAME_2>
|
||||||
INSERT INTO mysql.time_zone_name VALUES ('bug16420_2', @tzid);
|
eval INSERT INTO mysql.time_zone_name VALUES ('$tz_name', @tzid);
|
||||||
|
|
||||||
SET TIME_ZONE= 'bug16420_2';
|
--replace_result $tz_name <TZ_NAME_2>
|
||||||
|
eval SET TIME_ZONE= '$tz_name';
|
||||||
|
|
||||||
SET GLOBAL EVENT_SCHEDULER= ON;
|
SET GLOBAL EVENT_SCHEDULER= ON;
|
||||||
|
|
||||||
@ -280,6 +311,8 @@ DELETE FROM mysql.time_zone_name WHERE time_zone_id = @tzid;
|
|||||||
DELETE FROM mysql.time_zone_transition_type WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone_transition_type WHERE time_zone_id = @tzid;
|
||||||
DELETE FROM mysql.time_zone_transition WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone_transition WHERE time_zone_id = @tzid;
|
||||||
DELETE FROM mysql.time_zone WHERE time_zone_id = @tzid;
|
DELETE FROM mysql.time_zone WHERE time_zone_id = @tzid;
|
||||||
|
let $time_zone_auto_inc = `SELECT MAX(Time_zone_id) + 1 FROM mysql.time_zone`;
|
||||||
|
eval ALTER TABLE mysql.time_zone AUTO_INCREMENT = $time_zone_auto_inc;
|
||||||
|
|
||||||
DROP FUNCTION round_to_step;
|
DROP FUNCTION round_to_step;
|
||||||
DROP TABLE t_step;
|
DROP TABLE t_step;
|
||||||
@ -291,8 +324,8 @@ eval USE $old_db;
|
|||||||
|
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
let $wait_condition=
|
let $wait_condition=
|
||||||
select count(*) = 0 from information_schema.processlist
|
SELECT COUNT(*) = 0 FROM information_schema.processlist
|
||||||
where db='mysqltest_db1' and command = 'Connect' and user=current_user();
|
WHERE db='mysqltest_db1' AND command = 'Connect' AND user=current_user();
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
--echo End of 5.1 tests.
|
--echo End of 5.1 tests.
|
||||||
|
@ -418,3 +418,30 @@ SELECT a FROM t1 WHERE MATCH a AGAINST ('+city* of*' IN BOOLEAN MODE);
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#38842 - Fix for 25951 seems incorrect
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a VARCHAR(255), b INT, FULLTEXT(a), KEY(b));
|
||||||
|
INSERT INTO t1 VALUES('test', 1),('test', 1),('test', 1),('test', 1),
|
||||||
|
('test', 1),('test', 2),('test', 3),('test', 4);
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1 USE INDEX(a)
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1 FORCE INDEX(a)
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1 IGNORE INDEX(a)
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1 USE INDEX(b)
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1 FORCE INDEX(b)
|
||||||
|
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -43,8 +43,11 @@ drop table t1;
|
|||||||
# note that when LOW_MEMORY is set the "test" below is meaningless
|
# note that when LOW_MEMORY is set the "test" below is meaningless
|
||||||
#
|
#
|
||||||
|
|
||||||
set @@max_allowed_packet=1048576*100;
|
set @@global.max_allowed_packet=1048576*100;
|
||||||
--replace_result "''" XXX "'1'" XXX
|
--replace_result "''" XXX "'1'" XXX
|
||||||
|
|
||||||
|
# reconnect to make the new max packet size take effect
|
||||||
|
--connect (newconn, localhost, root,,)
|
||||||
eval select compress(repeat('aaaaaaaaaa', IF('$LOW_MEMORY', 10, 10000000))) is null;
|
eval select compress(repeat('aaaaaaaaaa', IF('$LOW_MEMORY', 10, 10000000))) is null;
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -973,5 +973,34 @@ GROUP BY int_nokey LIMIT 1;
|
|||||||
DROP TABLE derived1;
|
DROP TABLE derived1;
|
||||||
DROP TABLE D;
|
DROP TABLE D;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #39656: Behaviour different for agg functions with & without where -
|
||||||
|
# ONLY_FULL_GROUP_BY
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT, b INT);
|
||||||
|
INSERT INTO t1 VALUES (1,1), (1,2), (1,3);
|
||||||
|
|
||||||
|
SET SQL_MODE='ONLY_FULL_GROUP_BY';
|
||||||
|
|
||||||
|
SELECT COUNT(*) FROM t1;
|
||||||
|
SELECT COUNT(*) FROM t1 where a=1;
|
||||||
|
|
||||||
|
--error ER_MIX_OF_GROUP_FUNC_AND_FIELDS
|
||||||
|
SELECT COUNT(*),a FROM t1;
|
||||||
|
|
||||||
|
SELECT COUNT(*) FROM t1 a JOIN t1 b ON a.a= b.a;
|
||||||
|
|
||||||
|
--error ER_MIX_OF_GROUP_FUNC_AND_FIELDS
|
||||||
|
SELECT COUNT(*), (SELECT count(*) FROM t1 inr WHERE inr.a = outr.a)
|
||||||
|
FROM t1 outr;
|
||||||
|
|
||||||
|
SELECT COUNT(*) FROM t1 a JOIN t1 outr
|
||||||
|
ON a.a= (SELECT count(*) FROM t1 inr WHERE inr.a = outr.a);
|
||||||
|
|
||||||
|
SET SQL_MODE=default;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -135,3 +135,20 @@ select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f");
|
|||||||
--enable_ps_protocol
|
--enable_ps_protocol
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#37553: MySql Error Compare TimeDiff & Time
|
||||||
|
#
|
||||||
|
|
||||||
|
# calculations involving negative time values ignored sign
|
||||||
|
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10'),time('00:00:00');
|
||||||
|
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00');
|
||||||
|
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00');
|
||||||
|
|
||||||
|
# show that conversion to DECIMAL no longer drops sign
|
||||||
|
SELECT CAST(time('-73:42:12') AS DECIMAL);
|
||||||
|
|
||||||
|
|
||||||
|
# End of 5.0 tests
|
||||||
|
@ -79,7 +79,7 @@ INSERT into t1(name) values('Record_4');
|
|||||||
--chmod 0777 $MYSQLD_LOGFILE.orig
|
--chmod 0777 $MYSQLD_LOGFILE.orig
|
||||||
|
|
||||||
--echo ## There should be a difference ##
|
--echo ## There should be a difference ##
|
||||||
SET @@session.max_allowed_packet= 1024*1024*1024;
|
SET @@global.max_allowed_packet= 1024*1024*1024;
|
||||||
--replace_result $MYSQLD_LOGFILE MYSQLD_LOGFILE
|
--replace_result $MYSQLD_LOGFILE MYSQLD_LOGFILE
|
||||||
eval SET @orig_file= load_file('$MYSQLD_LOGFILE.orig');
|
eval SET @orig_file= load_file('$MYSQLD_LOGFILE.orig');
|
||||||
--replace_result $MYSQLD_LOGFILE MYSQLD_LOGFILE
|
--replace_result $MYSQLD_LOGFILE MYSQLD_LOGFILE
|
||||||
|
@ -11,18 +11,23 @@
|
|||||||
# Creation Date: 2008-03-07 #
|
# Creation Date: 2008-03-07 #
|
||||||
# Author: Salman Rawala #
|
# Author: Salman Rawala #
|
||||||
# #
|
# #
|
||||||
|
# Last modification: #
|
||||||
|
# 2008-11-14 mleich Fix Bug#40644 main.group_concat_max_len_func random #
|
||||||
|
# failures #
|
||||||
|
# + minor improvements #
|
||||||
|
# #
|
||||||
# Description: Test Cases of Dynamic System Variable group_concat_max_len #
|
# Description: Test Cases of Dynamic System Variable group_concat_max_len #
|
||||||
# that checks the functionality of this variable #
|
# that checks the functionality of this variable #
|
||||||
# #
|
# #
|
||||||
# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
|
# Reference: #
|
||||||
# server-system-variables.html #
|
# http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html #
|
||||||
# #
|
# #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
SET @save = @@global.group_concat_max_len;
|
SET @save = @@global.group_concat_max_len;
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
@ -32,34 +37,38 @@ drop table if exists t1;
|
|||||||
--echo ## Creating new table t1 ##
|
--echo ## Creating new table t1 ##
|
||||||
CREATE TABLE t1
|
CREATE TABLE t1
|
||||||
(
|
(
|
||||||
id INT NOT NULL auto_increment,
|
id INT NOT NULL AUTO_INCREMENT,
|
||||||
PRIMARY KEY (id),
|
PRIMARY KEY (id),
|
||||||
rollno int NOT NULL,
|
rollno INT NOT NULL,
|
||||||
name VARCHAR(30)
|
name VARCHAR(30)
|
||||||
);
|
);
|
||||||
|
|
||||||
--echo '#--------------------FN_DYNVARS_034_01-------------------------#'
|
--echo '#--------------------FN_DYNVARS_034_01-------------------------#'
|
||||||
########################################################################
|
########################################################################
|
||||||
# Setting initial value of group_concat_max_len, inserting some rows
|
# Setting initial value of group_concat_max_len, inserting some rows
|
||||||
# & creating 2 new connections
|
# & creating 2 new connections
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
--echo ## Setting initial value of variable to 4 ##
|
--echo ## Setting initial value of variable to 4 ##
|
||||||
SET @@global.group_concat_max_len = 4;
|
SET @@global.group_concat_max_len = 4;
|
||||||
|
|
||||||
--echo ## Inserting some rows in table ##
|
--echo ## Inserting some rows in table ##
|
||||||
INSERT into t1(rollno, name) values(1, 'Record_1');
|
INSERT INTO t1(rollno, name) VALUES(1, 'Record_1');
|
||||||
INSERT into t1(rollno, name) values(2, 'Record_2');
|
INSERT INTO t1(rollno, name) VALUES(2, 'Record_2');
|
||||||
INSERT into t1(rollno, name) values(1, 'Record_3');
|
INSERT INTO t1(rollno, name) VALUES(1, 'Record_3');
|
||||||
INSERT into t1(rollno, name) values(3, 'Record_4');
|
INSERT INTO t1(rollno, name) VALUES(3, 'Record_4');
|
||||||
INSERT into t1(rollno, name) values(1, 'Record_5');
|
INSERT INTO t1(rollno, name) VALUES(1, 'Record_5');
|
||||||
INSERT into t1(rollno, name) values(3, 'Record_6');
|
INSERT INTO t1(rollno, name) VALUES(3, 'Record_6');
|
||||||
INSERT into t1(rollno, name) values(4, 'Record_7');
|
INSERT INTO t1(rollno, name) VALUES(4, 'Record_7');
|
||||||
INSERT into t1(rollno, name) values(4, 'Record_8');
|
INSERT INTO t1(rollno, name) VALUES(4, 'Record_8');
|
||||||
|
# The following "auxiliary" select ensures that all records are on disk
|
||||||
|
# = result sets got by parallel sessions cannot suffer from effects
|
||||||
|
# caused by the MyISAM feature "concurrent_inserts".
|
||||||
|
SELECT * FROM t1 ORDER BY id;
|
||||||
|
|
||||||
--echo ## Creating two new connections ##
|
--echo ## Creating two new connections ##
|
||||||
CONNECT (test_con1,localhost,root,,);
|
connect (test_con1,localhost,root,,);
|
||||||
CONNECT (test_con2,localhost,root,,);
|
connect (test_con2,localhost,root,,);
|
||||||
|
|
||||||
|
|
||||||
--echo '#--------------------FN_DYNVARS_034_02-------------------------#'
|
--echo '#--------------------FN_DYNVARS_034_02-------------------------#'
|
||||||
@ -68,16 +77,16 @@ CONNECT (test_con2,localhost,root,,);
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
--echo ## Connecting with test_con1 ##
|
--echo ## Connecting with test_con1 ##
|
||||||
CONNECTION test_con1;
|
connection test_con1;
|
||||||
|
|
||||||
--echo ## Accessing data and using group_concat on column whose value is greater than 4 ##
|
--echo ## Accessing data and using group_concat on column whose value is greater than 4 ##
|
||||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
|
||||||
|
|
||||||
--echo ## Changing session value of variable and verifying its behavior, ##
|
--echo ## Changing session value of variable and verifying its behavior, ##
|
||||||
--echo ## warning should come here ##
|
--echo ## warning should come here ##
|
||||||
|
|
||||||
SET @@session.group_concat_max_len = 10;
|
SET @@session.group_concat_max_len = 10;
|
||||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
|
||||||
|
|
||||||
|
|
||||||
--echo '#--------------------FN_DYNVARS_034_03-------------------------#'
|
--echo '#--------------------FN_DYNVARS_034_03-------------------------#'
|
||||||
@ -85,19 +94,19 @@ SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
|||||||
# Verifying behavior of variable by increasing session value of variable #
|
# Verifying behavior of variable by increasing session value of variable #
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
--echo ## Connecting with new connection test_con2 ##
|
--echo ## Connecting with new connection test_con2 ##
|
||||||
connection test_con2;
|
connection test_con2;
|
||||||
|
|
||||||
--echo ## Verifying initial value of variable. It should be 4 ##
|
--echo ## Verifying initial value of variable. It should be 4 ##
|
||||||
SELECT @@session.group_concat_max_len = 4;
|
SELECT @@session.group_concat_max_len = 4;
|
||||||
|
|
||||||
--echo ## Setting session value of variable to 20 and verifying variable is concating ##
|
--echo ## Setting session value of variable to 20 and verifying variable is concating ##
|
||||||
--echo ## column's value to 20 or not ##
|
--echo ## column's value to 20 or not ##
|
||||||
SET @@session.group_concat_max_len = 20;
|
SET @@session.group_concat_max_len = 20;
|
||||||
|
|
||||||
--echo ## Verifying value of name column, it should not me more than 20 characters ##
|
--echo ## Verifying value of name column, it should not me more than 20 characters ##
|
||||||
--echo ## Warning should come here ##
|
--echo ## Warning should come here ##
|
||||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
|
||||||
|
|
||||||
|
|
||||||
--echo '#--------------------FN_DYNVARS_034_04-------------------------#'
|
--echo '#--------------------FN_DYNVARS_034_04-------------------------#'
|
||||||
@ -106,12 +115,12 @@ SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
|||||||
# greater than the maximum concat length of name column #
|
# greater than the maximum concat length of name column #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
--echo ## Setting session value of variable to 26. No warning should appear here ##
|
--echo ## Setting session value of variable to 26. No warning should appear here ##
|
||||||
--echo ## because the value after concatination is less than 30 ##
|
--echo ## because the value after concatination is less than 30 ##
|
||||||
SET @@session.group_concat_max_len = 26;
|
SET @@session.group_concat_max_len = 26;
|
||||||
|
|
||||||
--echo ## Verifying value of name column, it should not give warning now ##
|
--echo ## Verifying value of name column, it should not give warning now ##
|
||||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
|
||||||
|
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
@ -119,11 +128,11 @@ SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
|||||||
############################################################
|
############################################################
|
||||||
|
|
||||||
--echo ## Dropping table t1 ##
|
--echo ## Dropping table t1 ##
|
||||||
DROP table t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo ## Disconnecting both the connection ##
|
--echo ## Disconnecting both the connection ##
|
||||||
DISCONNECT test_con2;
|
disconnect test_con2;
|
||||||
DISCONNECT test_con1;
|
disconnect test_con1;
|
||||||
|
|
||||||
connection default;
|
connection default;
|
||||||
|
|
||||||
|
@ -1350,4 +1350,41 @@ explain select count(*) from information_schema.tables;
|
|||||||
explain select count(*) from information_schema.columns;
|
explain select count(*) from information_schema.columns;
|
||||||
explain select count(*) from information_schema.views;
|
explain select count(*) from information_schema.views;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#39955 SELECT on INFORMATION_SCHEMA.GLOBAL_VARIABLES takes too long
|
||||||
|
#
|
||||||
|
set global init_connect="drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;\
|
||||||
|
drop table if exists t1;drop table if exists t1;";
|
||||||
|
select * from information_schema.global_variables where variable_name='init_connect';
|
||||||
|
set global init_connect="";
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #34517 SHOW GLOBAL STATUS does not work properly in embedded server.
|
||||||
|
#
|
||||||
|
|
||||||
|
create table t0 select * from information_schema.global_status where VARIABLE_NAME='COM_SELECT';
|
||||||
|
SELECT 1;
|
||||||
|
select a.VARIABLE_VALUE - b.VARIABLE_VALUE from t0 b, information_schema.global_status a
|
||||||
|
where a.VARIABLE_NAME = b.VARIABLE_NAME;
|
||||||
|
drop table t0;
|
||||||
|
|
||||||
--echo End of 5.1 tests.
|
--echo End of 5.1 tests.
|
||||||
|
@ -121,3 +121,13 @@ SHOW CREATE TABLE t1;
|
|||||||
SELECT PARTITION_DESCRIPTION FROM information_schema.partitions WHERE
|
SELECT PARTITION_DESCRIPTION FROM information_schema.partitions WHERE
|
||||||
table_schema = "test" AND table_name = "t1";
|
table_schema = "test" AND table_name = "t1";
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#38909 CREATE_OPTIONS in information_schema produces wrong results
|
||||||
|
#
|
||||||
|
--disable_warnings
|
||||||
|
drop table if exists t1;
|
||||||
|
--enable_warnings
|
||||||
|
create table t1 (f1 int key) partition by key(f1) partitions 2;
|
||||||
|
select create_options from information_schema.tables where table_schema="test";
|
||||||
|
drop table t1;
|
||||||
|
@ -8,7 +8,9 @@
|
|||||||
-- disable_query_log
|
-- disable_query_log
|
||||||
-- disable_result_log
|
-- disable_result_log
|
||||||
|
|
||||||
SET @@max_allowed_packet=16777216;
|
# set packet size and reconnect
|
||||||
|
SET @@global.max_allowed_packet=16777216;
|
||||||
|
--connect (newconn, localhost, root,,)
|
||||||
|
|
||||||
DROP TABLE IF EXISTS bug34300;
|
DROP TABLE IF EXISTS bug34300;
|
||||||
CREATE TABLE bug34300 (
|
CREATE TABLE bug34300 (
|
||||||
|
@ -43,3 +43,13 @@ CREATE TABLE t1 ( a INT ) ENGINE=InnoDB;
|
|||||||
INSERT INTO t1 VALUES(1);
|
INSERT INTO t1 VALUES(1);
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#37284 Crash in Field_string::type()
|
||||||
|
#
|
||||||
|
--disable_warnings
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
--enable_warnings
|
||||||
|
CREATE TABLE t1 (a char(50)) ENGINE=InnoDB;
|
||||||
|
CREATE INDEX i1 on t1 (a(3));
|
||||||
|
SELECT * FROM t1 WHERE a = 'abcde';
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -10,12 +10,13 @@
|
|||||||
# #
|
# #
|
||||||
# Creation Date: 2008-03-08 #
|
# Creation Date: 2008-03-08 #
|
||||||
# Author: Rizwan #
|
# Author: Rizwan #
|
||||||
|
# Modified: HHunger 2008-08-29
|
||||||
# #
|
# #
|
||||||
# Description: Test Cases of Dynamic System Variable log_output #
|
# Description: Test Cases of Dynamic System Variable log_output #
|
||||||
# that checks the behavior of this variable #
|
# that checks the behavior of this variable #
|
||||||
# #
|
# #
|
||||||
# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
|
# Reference: #
|
||||||
# server-system-variables.html #
|
# http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html #
|
||||||
# #
|
# #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
@ -23,6 +24,10 @@
|
|||||||
# ps-protocol. So, it is switched off.
|
# ps-protocol. So, it is switched off.
|
||||||
--disable_ps_protocol
|
--disable_ps_protocol
|
||||||
|
|
||||||
|
SET @start_value= @@global.log_output;
|
||||||
|
SET @start_general_log= @@global.general_log;
|
||||||
|
SET @start_general_log_file= @@global.general_log_file;
|
||||||
|
|
||||||
--echo '#--------------------FN_DYNVARS_065_01-------------------------#'
|
--echo '#--------------------FN_DYNVARS_065_01-------------------------#'
|
||||||
##################################################################
|
##################################################################
|
||||||
# Check if setting log_output is changed in every new connection #
|
# Check if setting log_output is changed in every new connection #
|
||||||
@ -32,17 +37,12 @@ SET @@global.log_output = 'NONE';
|
|||||||
# con1 will be default connection from now on
|
# con1 will be default connection from now on
|
||||||
--echo 'connect (con1,localhost,root,,,,)'
|
--echo 'connect (con1,localhost,root,,,,)'
|
||||||
connect (con1,localhost,root,,,,);
|
connect (con1,localhost,root,,,,);
|
||||||
--echo 'connection con1'
|
|
||||||
connection con1;
|
|
||||||
SELECT @@global.log_output;
|
|
||||||
SET @@global.log_output = 'TABLE,FILE';
|
SET @@global.log_output = 'TABLE,FILE';
|
||||||
|
|
||||||
|
# Test that the effect is global
|
||||||
--echo 'connect (con2,localhost,root,,,,)'
|
--echo 'connect (con2,localhost,root,,,,)'
|
||||||
connect (con2,localhost,root,,,,);
|
connect (con2,localhost,root,,,,);
|
||||||
--echo 'connection con2'
|
|
||||||
connection con2;
|
|
||||||
SELECT @@global.log_output;
|
SELECT @@global.log_output;
|
||||||
disconnect con2;
|
|
||||||
|
|
||||||
|
|
||||||
--echo '#--------------------FN_DYNVARS_065_02-------------------------#'
|
--echo '#--------------------FN_DYNVARS_065_02-------------------------#'
|
||||||
####################################################
|
####################################################
|
||||||
@ -52,10 +52,9 @@ disconnect con2;
|
|||||||
--echo 'connection con1'
|
--echo 'connection con1'
|
||||||
connection con1;
|
connection con1;
|
||||||
|
|
||||||
|
#===============================================================
|
||||||
#=======================================================================
|
|
||||||
--echo '---Checking general_log when log_output is NONE---'
|
--echo '---Checking general_log when log_output is NONE---'
|
||||||
#=======================================================================
|
#===============================================================
|
||||||
|
|
||||||
SET @@global.log_output = 'NONE';
|
SET @@global.log_output = 'NONE';
|
||||||
TRUNCATE TABLE mysql.general_log;
|
TRUNCATE TABLE mysql.general_log;
|
||||||
@ -64,13 +63,13 @@ TRUNCATE TABLE mysql.general_log;
|
|||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
CREATE TABLE t1(a INT);
|
CREATE TABLE t1(a INT);
|
||||||
INSERT INTO t1 value(1);
|
INSERT INTO t1 VALUE(1);
|
||||||
SELECT 'abc';
|
SELECT 'abc';
|
||||||
SELECT count(*) FROM mysql.general_log;
|
SELECT count(*) FROM mysql.general_log;
|
||||||
|
|
||||||
#==============================================================================
|
#===============================================================
|
||||||
--echo '---Checking general_log when log_output is TABLE---'
|
--echo '---Checking general_log when log_output is TABLE---'
|
||||||
#==============================================================================
|
#===============================================================
|
||||||
|
|
||||||
SET @@global.log_output = 'TABLE';
|
SET @@global.log_output = 'TABLE';
|
||||||
TRUNCATE TABLE mysql.general_log;
|
TRUNCATE TABLE mysql.general_log;
|
||||||
@ -78,35 +77,49 @@ TRUNCATE TABLE mysql.general_log;
|
|||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
create table t1(a int);
|
CREATE TABLE t1(a int);
|
||||||
INSERT INTO t1 value(1);
|
INSERT INTO t1 VALUE(1);
|
||||||
SELECT 'abc';
|
SELECT 'abc';
|
||||||
SELECT count(*) from mysql.general_log;
|
# At least the last 4 statement should be logged.
|
||||||
|
SELECT count(*)>4 FROM mysql.general_log;
|
||||||
|
|
||||||
#===========================================================
|
#===============================================================
|
||||||
# Checking general_log when log_output is FILE
|
# Checking general_log when log_output is FILE
|
||||||
#===========================================================
|
#===============================================================
|
||||||
|
|
||||||
#SET @log_file = "mytest.log";
|
|
||||||
#SET @@global.general_log = 0;
|
|
||||||
#FLUSH LOGS;
|
|
||||||
#SET @@global.general_log_file = @log_file;
|
|
||||||
--echo 'Bug#35371: Changing general_log file is crashing server'
|
|
||||||
--echo 'SET @@global.general_log_file = @log_file;'
|
|
||||||
|
|
||||||
|
SET @@global.general_log = 'OFF';
|
||||||
|
FLUSH LOGS;
|
||||||
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||||
|
eval SET @@global.general_log_file = '$MYSQLTEST_VARDIR/run/mytest.log';
|
||||||
|
SET @@global.general_log = 'ON';
|
||||||
SET @@global.log_output = 'FILE';
|
SET @@global.log_output = 'FILE';
|
||||||
TRUNCATE TABLE mysql.general_log;
|
TRUNCATE TABLE mysql.general_log;
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
create table t1(a int);
|
CREATE TABLE t1(a INT);
|
||||||
INSERT INTO t1 value(1);
|
INSERT INTO t1 VALUE(1);
|
||||||
SELECT 'abc';
|
SELECT 'abc';
|
||||||
SELECT count(*) from mysql.general_log;
|
SELECT count(*) FROM mysql.general_log;
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
file_exists $MYSQLTEST_VARDIR/run/mytest.log ;
|
||||||
|
|
||||||
|
#==============================================================
|
||||||
|
# Clean up
|
||||||
|
#==============================================================
|
||||||
|
|
||||||
|
--echo connection default;
|
||||||
|
connection default;
|
||||||
|
SET @@global.general_log= 'OFF';
|
||||||
|
SET @@global.general_log_file= @start_general_log_file;
|
||||||
|
SET @@global.log_output= @start_value;
|
||||||
|
SET @@global.general_log= @start_general_log;
|
||||||
|
SET @@global.general_log= 'ON';
|
||||||
|
|
||||||
--enable_ps_protocol
|
--enable_ps_protocol
|
||||||
####################################################
|
####################################################
|
||||||
# Endo of functionality Testing for log_output #
|
# End of functionality Testing for log_output #
|
||||||
####################################################
|
####################################################
|
||||||
|
|
||||||
|
@ -36,8 +36,13 @@
|
|||||||
|
|
||||||
SET @start_global_value = @@global.max_allowed_packet;
|
SET @start_global_value = @@global.max_allowed_packet;
|
||||||
SELECT @start_global_value;
|
SELECT @start_global_value;
|
||||||
SET @start_session_value = @@session.max_allowed_packet;
|
|
||||||
SELECT @start_session_value;
|
# give a known value to @@session.max_allowed_packet by assigning to
|
||||||
|
# @@global and setting up a new connection (for deterministic result
|
||||||
|
# file diffing)
|
||||||
|
SET @@global.max_allowed_packet = DEFAULT;
|
||||||
|
connect (conn1, localhost, root,,);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--echo '#--------------------FN_DYNVARS_070_01-------------------------#'
|
--echo '#--------------------FN_DYNVARS_070_01-------------------------#'
|
||||||
@ -49,7 +54,9 @@ SET @@global.max_allowed_packet = 1000;
|
|||||||
SET @@global.max_allowed_packet = DEFAULT;
|
SET @@global.max_allowed_packet = DEFAULT;
|
||||||
SELECT @@global.max_allowed_packet;
|
SELECT @@global.max_allowed_packet;
|
||||||
|
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET @@session.max_allowed_packet = 20000;
|
SET @@session.max_allowed_packet = 20000;
|
||||||
|
--Error ER_NO_DEFAULT
|
||||||
SET @@session.max_allowed_packet = DEFAULT;
|
SET @@session.max_allowed_packet = DEFAULT;
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
|
|
||||||
@ -62,9 +69,6 @@ SELECT @@session.max_allowed_packet;
|
|||||||
SET @@global.max_allowed_packet = DEFAULT;
|
SET @@global.max_allowed_packet = DEFAULT;
|
||||||
SELECT @@global.max_allowed_packet = 1048576;
|
SELECT @@global.max_allowed_packet = 1048576;
|
||||||
|
|
||||||
SET @@session.max_allowed_packet = DEFAULT;
|
|
||||||
SELECT @@session.max_allowed_packet = 1048576;
|
|
||||||
|
|
||||||
|
|
||||||
--echo '#--------------------FN_DYNVARS_070_03-------------------------#'
|
--echo '#--------------------FN_DYNVARS_070_03-------------------------#'
|
||||||
############################################################################
|
############################################################################
|
||||||
@ -86,14 +90,19 @@ SELECT @@global.max_allowed_packet;
|
|||||||
# Change the value of max_allowed_packet to a valid value for SESSION Scope #
|
# Change the value of max_allowed_packet to a valid value for SESSION Scope #
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET @@session.max_allowed_packet = 1024;
|
SET @@session.max_allowed_packet = 1024;
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET @@session.max_allowed_packet = 1025;
|
SET @@session.max_allowed_packet = 1025;
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET @@session.max_allowed_packet = 65535;
|
SET @@session.max_allowed_packet = 65535;
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET @@session.max_allowed_packet = 1073741824;
|
SET @@session.max_allowed_packet = 1073741824;
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET @@session.max_allowed_packet = 1073741823;
|
SET @@session.max_allowed_packet = 1073741823;
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
|
|
||||||
@ -118,14 +127,18 @@ SELECT @@global.max_allowed_packet;
|
|||||||
SET @@global.max_allowed_packet = test;
|
SET @@global.max_allowed_packet = test;
|
||||||
SELECT @@global.max_allowed_packet;
|
SELECT @@global.max_allowed_packet;
|
||||||
|
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET @@session.max_allowed_packet = 0;
|
SET @@session.max_allowed_packet = 0;
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET @@session.max_allowed_packet = 1023;
|
SET @@session.max_allowed_packet = 1023;
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET @@session.max_allowed_packet = -2;
|
SET @@session.max_allowed_packet = -2;
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
--Error ER_PARSE_ERROR
|
--Error ER_PARSE_ERROR
|
||||||
SET @@session.max_allowed_packet = 65530.34.;
|
SET @@session.max_allowed_packet = 65530.34.;
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET @@session.max_allowed_packet = 10737418241;
|
SET @@session.max_allowed_packet = 10737418241;
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
--echo 'Bug # 34837: Errors are not coming on assigning invalid values to variable';
|
--echo 'Bug # 34837: Errors are not coming on assigning invalid values to variable';
|
||||||
@ -180,6 +193,7 @@ SELECT @@max_allowed_packet = @@global.max_allowed_packet;
|
|||||||
# Check if accessing variable with SESSION,LOCAL and without SCOPE points to same session variable #
|
# Check if accessing variable with SESSION,LOCAL and without SCOPE points to same session variable #
|
||||||
########################################################################################################
|
########################################################################################################
|
||||||
|
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET @@max_allowed_packet = 100000;
|
SET @@max_allowed_packet = 100000;
|
||||||
SELECT @@max_allowed_packet = @@local.max_allowed_packet;
|
SELECT @@max_allowed_packet = @@local.max_allowed_packet;
|
||||||
SELECT @@local.max_allowed_packet = @@session.max_allowed_packet;
|
SELECT @@local.max_allowed_packet = @@session.max_allowed_packet;
|
||||||
@ -190,6 +204,7 @@ SELECT @@local.max_allowed_packet = @@session.max_allowed_packet;
|
|||||||
# Check if max_allowed_packet can be accessed with and without @@ sign #
|
# Check if max_allowed_packet can be accessed with and without @@ sign #
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
|
--Error ER_VARIABLE_IS_READONLY
|
||||||
SET max_allowed_packet = 1024;
|
SET max_allowed_packet = 1024;
|
||||||
SELECT @@max_allowed_packet;
|
SELECT @@max_allowed_packet;
|
||||||
--Error ER_UNKNOWN_TABLE
|
--Error ER_UNKNOWN_TABLE
|
||||||
@ -204,9 +219,9 @@ SELECT max_allowed_packet = @@session.max_allowed_packet;
|
|||||||
# Restore initial value #
|
# Restore initial value #
|
||||||
####################################
|
####################################
|
||||||
|
|
||||||
|
connection default;
|
||||||
SET @@global.max_allowed_packet = @start_global_value;
|
SET @@global.max_allowed_packet = @start_global_value;
|
||||||
SELECT @@global.max_allowed_packet;
|
SELECT @@global.max_allowed_packet;
|
||||||
SET @@session.max_allowed_packet = @start_session_value;
|
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,26 +43,19 @@ name BLOB
|
|||||||
|
|
||||||
--echo '#--------------------FN_DYNVARS_070_01-------------------------#'
|
--echo '#--------------------FN_DYNVARS_070_01-------------------------#'
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Setting initial value of max_allowed_packet to 1024 at session level and #
|
# Setting initial value of max_allowed_packet to 1024 at session level
|
||||||
# verifying its behavior after inserting data greater than 1024 bytes #
|
# should result in an error (session variable is readonly)
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
--echo ## Setting value of max_allowed packet and net_buffer_length to 1024 ##
|
--echo ## Setting value of max_allowed packet and net_buffer_length to 1024 ##
|
||||||
|
--error ER_VARIABLE_IS_READONLY
|
||||||
SET @@session.max_allowed_packet = 1024;
|
SET @@session.max_allowed_packet = 1024;
|
||||||
SET @@session.net_buffer_length = 1024;
|
|
||||||
SELECT @@session.max_allowed_packet;
|
SELECT @@session.max_allowed_packet;
|
||||||
|
|
||||||
|
--error ER_VARIABLE_IS_READONLY
|
||||||
|
SET @@session.net_buffer_length = 1024;
|
||||||
SELECT @@session.net_buffer_length;
|
SELECT @@session.net_buffer_length;
|
||||||
|
|
||||||
--echo ## Inserting and fetching data of length greater than 1024 ##
|
|
||||||
INSERT into t1(name) values("aaassssssssddddddddffffffgggggggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
|
|
||||||
|
|
||||||
SELECT length("aaaaaasssssssssssdddddddfffffgggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk") as len;
|
|
||||||
|
|
||||||
--echo ## Verifying record in table t1 ##
|
|
||||||
SELECT * from t1;
|
|
||||||
|
|
||||||
--echo 'Bug#35381: Error is not coming on inserting and fetching data of length'
|
|
||||||
--echo 'greater than max_allowed_packet size at session level';
|
|
||||||
|
|
||||||
--echo '#--------------------FN_DYNVARS_070_02-------------------------#'
|
--echo '#--------------------FN_DYNVARS_070_02-------------------------#'
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -10,9 +10,9 @@ source include/have_log_bin.inc;
|
|||||||
drop table if exists t1,t2,t3;
|
drop table if exists t1,t2,t3;
|
||||||
drop database if exists mysqltest;
|
drop database if exists mysqltest;
|
||||||
drop view if exists v1;
|
drop view if exists v1;
|
||||||
--error 0,1141,1147
|
--error 0,ER_NONEXISTING_GRANT,ER_NONEXISTING_TABLE_GRANT
|
||||||
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
|
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
|
||||||
--error 0,1141,1147
|
--error 0,ER_NONEXISTING_GRANT,ER_NONEXISTING_TABLE_GRANT
|
||||||
revoke all privileges on mysqltest.* from mysqltest_1@localhost;
|
revoke all privileges on mysqltest.* from mysqltest_1@localhost;
|
||||||
delete from mysql.user where user=_binary'mysqltest_1';
|
delete from mysql.user where user=_binary'mysqltest_1';
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
@ -160,9 +160,9 @@ create table t2 (n int(10) not null primary key, d int(10));
|
|||||||
insert into t1 values(1,1);
|
insert into t1 values(1,1);
|
||||||
insert into t2 values(1,10),(2,20);
|
insert into t2 values(1,10),(2,20);
|
||||||
LOCK TABLES t1 write, t2 read;
|
LOCK TABLES t1 write, t2 read;
|
||||||
--error 1099
|
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
||||||
DELETE t1.*, t2.* FROM t1,t2 where t1.n=t2.n;
|
DELETE t1.*, t2.* FROM t1,t2 where t1.n=t2.n;
|
||||||
--error 1099
|
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
||||||
UPDATE t1,t2 SET t1.d=t2.d,t2.d=30 WHERE t1.n=t2.n;
|
UPDATE t1,t2 SET t1.d=t2.d,t2.d=30 WHERE t1.n=t2.n;
|
||||||
UPDATE t1,t2 SET t1.d=t2.d WHERE t1.n=t2.n;
|
UPDATE t1,t2 SET t1.d=t2.d WHERE t1.n=t2.n;
|
||||||
unlock tables;
|
unlock tables;
|
||||||
@ -183,7 +183,7 @@ create table t1 (n int(10), d int(10));
|
|||||||
create table t2 (n int(10), d int(10));
|
create table t2 (n int(10), d int(10));
|
||||||
insert into t1 values(1,1);
|
insert into t1 values(1,1);
|
||||||
insert into t2 values(1,10),(2,20);
|
insert into t2 values(1,10),(2,20);
|
||||||
--error 1175
|
--error ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
|
||||||
UPDATE t1,t2 SET t1.d=t2.d WHERE t1.n=t2.n;
|
UPDATE t1,t2 SET t1.d=t2.d WHERE t1.n=t2.n;
|
||||||
set sql_safe_updates=0;
|
set sql_safe_updates=0;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
@ -196,7 +196,7 @@ set timestamp=1038000000;
|
|||||||
UPDATE t1,t2 SET t1.d=t2.d WHERE t1.n=t2.n;
|
UPDATE t1,t2 SET t1.d=t2.d WHERE t1.n=t2.n;
|
||||||
select n,d,unix_timestamp(t) from t1;
|
select n,d,unix_timestamp(t) from t1;
|
||||||
select n,d,unix_timestamp(t) from t2;
|
select n,d,unix_timestamp(t) from t2;
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
UPDATE t1,t2 SET 1=2 WHERE t1.n=t2.n;
|
UPDATE t1,t2 SET 1=2 WHERE t1.n=t2.n;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
set timestamp=0;
|
set timestamp=0;
|
||||||
@ -323,41 +323,6 @@ delete t1, t2 from t2,t1
|
|||||||
|
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
#
|
|
||||||
# Test for bug #1820.
|
|
||||||
#
|
|
||||||
|
|
||||||
create table t1 ( a int not null, b int not null) ;
|
|
||||||
--disable_query_log
|
|
||||||
insert into t1 values (1,1),(2,2),(3,3),(4,4);
|
|
||||||
let $1=19;
|
|
||||||
set @d=4;
|
|
||||||
while ($1)
|
|
||||||
{
|
|
||||||
eval insert into t1 select a+@d,b+@d from t1;
|
|
||||||
eval set @d=@d*2;
|
|
||||||
dec $1;
|
|
||||||
}
|
|
||||||
|
|
||||||
--enable_query_log
|
|
||||||
alter table t1 add index i1(a);
|
|
||||||
delete from t1 where a > 2000000;
|
|
||||||
create table t2 like t1;
|
|
||||||
insert into t2 select * from t1;
|
|
||||||
|
|
||||||
select 't2 rows before small delete', count(*) from t1;
|
|
||||||
delete t1,t2 from t1,t2 where t1.b=t2.a and t1.a < 2;
|
|
||||||
select 't2 rows after small delete', count(*) from t2;
|
|
||||||
select 't1 rows after small delete', count(*) from t1;
|
|
||||||
|
|
||||||
## Try deleting many rows
|
|
||||||
|
|
||||||
delete t1,t2 from t1,t2 where t1.b=t2.a and t1.a < 100*1000;
|
|
||||||
select 't2 rows after big delete', count(*) from t2;
|
|
||||||
select 't1 rows after big delete', count(*) from t1;
|
|
||||||
|
|
||||||
drop table t1,t2;
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test alias (this is not correct in 4.0)
|
# Test alias (this is not correct in 4.0)
|
||||||
#
|
#
|
||||||
@ -367,7 +332,7 @@ CREATE TABLE t2 ( a int );
|
|||||||
DELETE t1 FROM t1, t2 AS t3;
|
DELETE t1 FROM t1, t2 AS t3;
|
||||||
DELETE t4 FROM t1, t1 AS t4;
|
DELETE t4 FROM t1, t1 AS t4;
|
||||||
DELETE t3 FROM t1 AS t3, t1 AS t4;
|
DELETE t3 FROM t1 AS t3, t1 AS t4;
|
||||||
--error 1109
|
--error ER_UNKNOWN_TABLE
|
||||||
DELETE t1 FROM t1 AS t3, t2 AS t4;
|
DELETE t1 FROM t1 AS t3, t2 AS t4;
|
||||||
INSERT INTO t1 values (1),(2);
|
INSERT INTO t1 values (1),(2);
|
||||||
INSERT INTO t2 values (1),(2);
|
INSERT INTO t2 values (1),(2);
|
||||||
@ -422,7 +387,7 @@ drop database mysqltest;
|
|||||||
create table t1 (a int, primary key (a));
|
create table t1 (a int, primary key (a));
|
||||||
create table t2 (a int, primary key (a));
|
create table t2 (a int, primary key (a));
|
||||||
create table t3 (a int, primary key (a));
|
create table t3 (a int, primary key (a));
|
||||||
-- error 1109
|
-- error ER_UNKNOWN_TABLE
|
||||||
delete t1,t3 from t1,t2 where t1.a=t2.a and t2.a=(select t3.a from t3 where t1.a=t3.a);
|
delete t1,t3 from t1,t2 where t1.a=t2.a and t2.a=(select t3.a from t3 where t1.a=t3.a);
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
|
|
||||||
@ -431,9 +396,9 @@ drop table t1, t2, t3;
|
|||||||
#
|
#
|
||||||
create table t1 (col1 int);
|
create table t1 (col1 int);
|
||||||
create table t2 (col1 int);
|
create table t2 (col1 int);
|
||||||
-- error 1093
|
-- error ER_UPDATE_TABLE_USED
|
||||||
update t1,t2 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1;
|
update t1,t2 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1;
|
||||||
-- error 1093
|
-- error ER_UPDATE_TABLE_USED
|
||||||
delete t1 from t1,t2 where t1.col1 < (select max(col1) from t1) and t1.col1 = t2.col1;
|
delete t1 from t1,t2 where t1.col1 < (select max(col1) from t1) and t1.col1 = t2.col1;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
@ -458,7 +423,7 @@ drop table t1, t2;
|
|||||||
#
|
#
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
create table t2(a int);
|
create table t2(a int);
|
||||||
--error 1093
|
--error ER_UPDATE_TABLE_USED
|
||||||
delete from t1,t2 using t1,t2 where t1.a=(select a from t1);
|
delete from t1,t2 using t1,t2 where t1.a=(select a from t1);
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
1
mysql-test/t/multi_update2-master.opt
Normal file
1
mysql-test/t/multi_update2-master.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--set-variable=tmp_table_size=1024
|
43
mysql-test/t/multi_update2.test
Normal file
43
mysql-test/t/multi_update2.test
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#
|
||||||
|
# Test of update statement that uses many tables.
|
||||||
|
#
|
||||||
|
|
||||||
|
--disable_warnings
|
||||||
|
DROP TABLE IF EXISTS t1,t2;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#1820 Rows not deleted from second table on multi-table delete
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL) ;
|
||||||
|
--echo # The protocolling of many inserts into t1 is suppressed.
|
||||||
|
--disable_query_log
|
||||||
|
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4);
|
||||||
|
let $1=19;
|
||||||
|
set @d=4;
|
||||||
|
while ($1)
|
||||||
|
{
|
||||||
|
eval INSERT INTO t1 SELECT a+@d,b+@d FROM t1;
|
||||||
|
eval SET @d=@d*2;
|
||||||
|
dec $1;
|
||||||
|
}
|
||||||
|
|
||||||
|
--enable_query_log
|
||||||
|
ALTER TABLE t1 ADD INDEX i1(a);
|
||||||
|
DELETE FROM t1 WHERE a > 2000000;
|
||||||
|
CREATE TABLE t2 LIKE t1;
|
||||||
|
INSERT INTO t2 SELECT * FROM t1;
|
||||||
|
|
||||||
|
SELECT 't2 rows before small delete', COUNT(*) FROM t1;
|
||||||
|
DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 2;
|
||||||
|
SELECT 't2 rows after small delete', COUNT(*) FROM t2;
|
||||||
|
SELECT 't1 rows after small delete', COUNT(*) FROM t1;
|
||||||
|
|
||||||
|
## Try deleting many rows
|
||||||
|
|
||||||
|
DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 100*1000;
|
||||||
|
SELECT 't2 rows after big delete', COUNT(*) FROM t2;
|
||||||
|
SELECT 't1 rows after big delete', COUNT(*) FROM t1;
|
||||||
|
|
||||||
|
DROP TABLE t1,t2;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user