merge 5.1 --> 5.1-rpl

This commit is contained in:
Alfranio Correia 2008-12-13 19:42:12 +00:00
commit 19f859a27e
165 changed files with 3576 additions and 1404 deletions

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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("");

View File

@ -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
} }
} }

View File

@ -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

View File

@ -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

View File

@ -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*);

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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;
} }

View File

@ -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
} }

View File

@ -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 {

View File

@ -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)

View File

@ -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_;

View File

@ -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

View File

@ -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
{ {

View File

@ -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)

View File

@ -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);

View File

@ -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

View 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);

View File

@ -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

View 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;

View 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;

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);

View 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;

View File

@ -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.

View File

@ -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;

View File

@ -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;

View File

@ -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';

View File

@ -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

View File

@ -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;

View File

@ -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;

View 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;

View File

@ -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.
# #

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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,

View 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

View File

@ -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

View File

@ -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.

View File

@ -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)

View File

@ -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

View 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

View File

@ -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';

View File

@ -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

View File

@ -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))

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.
# ----------------------------------------------------------------- # -----------------------------------------------------------------

View File

@ -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.

View File

@ -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';

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -0,0 +1,2 @@
--character-sets-dir=$MYSQL_TEST_DIR/ß
--character-set-filesystem=latin1

View 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;

View File

@ -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

View File

@ -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

View File

@ -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
# #

View File

@ -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.

View File

@ -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;

View File

@ -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;
# #

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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.

View File

@ -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;

View File

@ -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 (

View File

@ -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;

View File

@ -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 #
#################################################### ####################################################

View File

@ -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;

View File

@ -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-------------------------#'
############################################################################### ###############################################################################

View File

@ -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

View File

@ -0,0 +1 @@
--set-variable=tmp_table_size=1024

View 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