merge 5.1 --> 5.1-rpl
This commit is contained in:
commit
19f859a27e
25
.bzrignore
25
.bzrignore
@ -3036,3 +3036,28 @@ mysql-test/bug36522.tar
|
||||
mysql-test/t.log
|
||||
mysql-test/tps.log
|
||||
libmysqld/event_parse_data.cc
|
||||
autom4te.cache
|
||||
sql/share/czech
|
||||
sql/share/danish
|
||||
sql/share/dutch
|
||||
sql/share/english
|
||||
sql/share/estonian
|
||||
sql/share/french
|
||||
sql/share/german
|
||||
sql/share/greek
|
||||
sql/share/hungarian
|
||||
sql/share/italian
|
||||
sql/share/japanese
|
||||
sql/share/japanese-sjis
|
||||
sql/share/korean
|
||||
sql/share/norwegian
|
||||
sql/share/norwegian-ny
|
||||
sql/share/polish
|
||||
sql/share/portuguese
|
||||
sql/share/romanian
|
||||
sql/share/russian
|
||||
sql/share/serbian
|
||||
sql/share/slovak
|
||||
sql/share/spanish
|
||||
sql/share/swedish
|
||||
sql/share/ukrainian
|
||||
|
@ -1627,8 +1627,10 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||
opt_nopager= 1;
|
||||
break;
|
||||
case OPT_MYSQL_PROTOCOL:
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib,
|
||||
opt->name);
|
||||
#endif
|
||||
break;
|
||||
case OPT_SERVER_ARG:
|
||||
#ifdef EMBEDDED_LIBRARY
|
||||
|
@ -517,9 +517,14 @@ static int process_all_tables_in_db(char *database)
|
||||
LINT_INIT(res);
|
||||
if (use_db(database))
|
||||
return 1;
|
||||
if (mysql_query(sock, "SHOW /*!50002 FULL*/ TABLES") ||
|
||||
!((res= mysql_store_result(sock))))
|
||||
if ((mysql_query(sock, "SHOW /*!50002 FULL*/ TABLES") &&
|
||||
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;
|
||||
}
|
||||
|
||||
num_columns= mysql_num_fields(res);
|
||||
|
||||
|
@ -1851,13 +1851,7 @@ static void DBUGOpenFile(CODE_STATE *cs,
|
||||
else
|
||||
{
|
||||
newfile= !EXISTS(name);
|
||||
if (!(fp= fopen(name,
|
||||
#if defined(MSDOS) || defined(__WIN__)
|
||||
append ? "a+c" : "wc"
|
||||
#else
|
||||
append ? "a+" : "w"
|
||||
#endif
|
||||
)))
|
||||
if (!(fp= fopen(name, append ? "a+" : "w")))
|
||||
{
|
||||
(void) fprintf(stderr, ERR_OPEN, cs->process, name);
|
||||
perror("");
|
||||
|
@ -185,11 +185,36 @@ static const char *get_ha_error_msg(int code)
|
||||
}
|
||||
|
||||
|
||||
#if defined(__WIN__)
|
||||
static my_bool print_win_error_msg(DWORD error, my_bool verbose)
|
||||
{
|
||||
LPTSTR s;
|
||||
if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
||||
FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL, error, 0, (LPTSTR)&s, 0,
|
||||
NULL))
|
||||
{
|
||||
if (verbose)
|
||||
printf("Win32 error code %d: %s", error, s);
|
||||
else
|
||||
puts(s);
|
||||
LocalFree(s);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
int error,code,found;
|
||||
const char *msg;
|
||||
char *unknown_error = 0;
|
||||
#if defined(__WIN__)
|
||||
my_bool skip_win_message= 0;
|
||||
#endif
|
||||
MY_INIT(argv[0]);
|
||||
|
||||
if (get_options(&argc,&argv))
|
||||
@ -293,9 +318,20 @@ int main(int argc,char *argv[])
|
||||
}
|
||||
if (!found)
|
||||
{
|
||||
fprintf(stderr,"Illegal error code: %d\n", code);
|
||||
error= 1;
|
||||
#if defined(__WIN__)
|
||||
if (!(skip_win_message= !print_win_error_msg((DWORD)code, verbose)))
|
||||
{
|
||||
#endif
|
||||
fprintf(stderr,"Illegal error code: %d\n",code);
|
||||
error=1;
|
||||
#if defined(__WIN__)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#if defined(__WIN__)
|
||||
if (!skip_win_message)
|
||||
print_win_error_msg((DWORD)code, verbose);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include "yassl_types.hpp" // SignatureAlgorithm
|
||||
#include "buffer.hpp" // input_buffer
|
||||
#include "asn.hpp" // SignerList
|
||||
#include "openssl/ssl.h" // internal and external use
|
||||
#include STL_LIST_FILE
|
||||
#include STL_ALGORITHM_FILE
|
||||
|
||||
@ -87,6 +88,7 @@ class CertManager {
|
||||
bool verifyNone_; // no error if verify fails
|
||||
bool failNoCert_;
|
||||
bool sendVerify_;
|
||||
VerifyCallback verifyCallback_; // user verify callback
|
||||
public:
|
||||
CertManager();
|
||||
~CertManager();
|
||||
@ -118,6 +120,7 @@ public:
|
||||
void setFailNoCert();
|
||||
void setSendVerify();
|
||||
void setPeerX509(X509*);
|
||||
void setVerifyCallback(VerifyCallback);
|
||||
private:
|
||||
CertManager(const CertManager&); // hide copy
|
||||
CertManager& operator=(const CertManager&); // and assign
|
||||
|
@ -52,6 +52,7 @@
|
||||
#define SSL_load_error_strings yaSSL_load_error_strings
|
||||
#define SSL_set_session yaSSL_set_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_CTX_set_session_cache_mode yaSSL_CTX_set_session_cache_mode
|
||||
#define SSL_get_peer_certificate yaSSL_get_peer_certificate
|
||||
|
@ -170,8 +170,9 @@ enum { /* X509 Constants */
|
||||
X509_V_ERR_CRL_SIGNATURE_FAILURE = 10,
|
||||
X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 11,
|
||||
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*);
|
||||
int SSL_set_fd (SSL*, YASSL_SOCKET_T);
|
||||
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_read(SSL*, void*, int);
|
||||
int SSL_accept(SSL*);
|
||||
@ -227,6 +229,7 @@ void SSL_load_error_strings(void);
|
||||
|
||||
int SSL_set_session(SSL *ssl, SSL_SESSION *session);
|
||||
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_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode);
|
||||
X509* SSL_get_peer_certificate(SSL*);
|
||||
|
@ -667,10 +667,12 @@ struct Parameters {
|
||||
Cipher suites_[MAX_SUITE_SZ];
|
||||
char cipher_name_[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);
|
||||
|
||||
void SetSuites(ProtocolVersion pv, bool removeDH = false);
|
||||
void SetSuites(ProtocolVersion pv, bool removeDH = false,
|
||||
bool removeRSA = false, bool removeDSA = false);
|
||||
void SetCipherNames();
|
||||
private:
|
||||
Parameters(const Parameters&); // hide copy
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 MySQL AB
|
||||
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -268,12 +268,14 @@ class Sessions {
|
||||
STL::list<SSL_SESSION*> list_;
|
||||
RandomPool random_; // for session cleaning
|
||||
Mutex mutex_; // no-op for single threaded
|
||||
int count_; // flush counter
|
||||
|
||||
Sessions() {} // only GetSessions can create
|
||||
Sessions() : count_(0) {} // only GetSessions can create
|
||||
public:
|
||||
SSL_SESSION* lookup(const opaque*, SSL_SESSION* copy = 0);
|
||||
void add(const SSL&);
|
||||
void remove(const opaque*);
|
||||
void Flush();
|
||||
|
||||
~Sessions();
|
||||
|
||||
@ -425,8 +427,10 @@ private:
|
||||
pem_password_cb passwordCb_;
|
||||
void* userData_;
|
||||
bool sessionCacheOff_;
|
||||
bool sessionCacheFlushOff_;
|
||||
Stats stats_;
|
||||
Mutex mutex_; // for Stats
|
||||
VerifyCallback verifyCallback_;
|
||||
public:
|
||||
explicit SSL_CTX(SSL_METHOD* meth);
|
||||
~SSL_CTX();
|
||||
@ -437,18 +441,22 @@ public:
|
||||
const Ciphers& GetCiphers() const;
|
||||
const DH_Parms& GetDH_Parms() const;
|
||||
const Stats& GetStats() const;
|
||||
const VerifyCallback getVerifyCallback() const;
|
||||
pem_password_cb GetPasswordCb() const;
|
||||
void* GetUserData() const;
|
||||
bool GetSessionCacheOff() const;
|
||||
bool GetSessionCacheFlushOff() const;
|
||||
|
||||
void setVerifyPeer();
|
||||
void setVerifyNone();
|
||||
void setFailNoCert();
|
||||
void setVerifyCallback(VerifyCallback);
|
||||
bool SetCipherList(const char*);
|
||||
bool SetDH(const DH&);
|
||||
void SetPasswordCb(pem_password_cb cb);
|
||||
void SetUserData(void*);
|
||||
void SetSessionCacheOff();
|
||||
void SetSessionCacheFlushOff();
|
||||
|
||||
void IncrementStats(StatsField);
|
||||
void AddCA(x509* ca);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 MySQL AB
|
||||
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -29,6 +29,13 @@
|
||||
#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 {
|
||||
|
||||
#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 KEY_PREFIX = 7; // up to 7 prefix letters for key rounds
|
||||
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_CIPHERS = 32; // max supported ciphers for cipher list
|
||||
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 MAX_RECORD_SIZE = 16384; // 2^14, max size by standard
|
||||
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
|
||||
|
@ -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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -24,6 +24,7 @@
|
||||
#include "runtime.hpp"
|
||||
#include "cert_wrapper.hpp"
|
||||
#include "yassl_int.hpp"
|
||||
#include "error.hpp"
|
||||
|
||||
#if defined(USE_CML_LIB)
|
||||
#include "cmapi_cpp.h"
|
||||
@ -90,7 +91,7 @@ opaque* x509::use_buffer()
|
||||
//CertManager
|
||||
CertManager::CertManager()
|
||||
: 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)
|
||||
{
|
||||
peerList_.push_back(x); // take ownership
|
||||
@ -236,7 +243,7 @@ uint CertManager::get_privateKeyLength() const
|
||||
int CertManager::Validate()
|
||||
{
|
||||
CertList::reverse_iterator last = peerList_.rbegin();
|
||||
int count = peerList_.size();
|
||||
size_t count = peerList_.size();
|
||||
|
||||
while ( count > 1 ) {
|
||||
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::CertDecoder cert(source, true, &signers_, verifyNone_);
|
||||
|
||||
if (int err = cert.GetError().What())
|
||||
int err = cert.GetError().What();
|
||||
if ( err )
|
||||
return err;
|
||||
|
||||
uint sz = cert.GetPublicKey().size();
|
||||
@ -269,13 +277,25 @@ int CertManager::Validate()
|
||||
else
|
||||
peerKeyType_ = dsa_sa_algo;
|
||||
|
||||
int iSz = strlen(cert.GetIssuer()) + 1;
|
||||
int sSz = strlen(cert.GetCommonName()) + 1;
|
||||
int bSz = strlen(cert.GetBeforeDate()) + 1;
|
||||
int aSz = strlen(cert.GetAfterDate()) + 1;
|
||||
size_t iSz = strlen(cert.GetIssuer()) + 1;
|
||||
size_t sSz = strlen(cert.GetCommonName()) + 1;
|
||||
int bSz = (int)strlen(cert.GetBeforeDate()) + 1;
|
||||
int aSz = (int)strlen(cert.GetAfterDate()) + 1;
|
||||
peerX509_ = NEW_YS X509(cert.GetIssuer(), iSz, cert.GetCommonName(),
|
||||
sSz, cert.GetBeforeDate(), bSz,
|
||||
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;
|
||||
}
|
||||
|
@ -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
|
||||
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)
|
||||
{
|
||||
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)
|
||||
ctx->SetSessionCacheOff();
|
||||
|
||||
if (mode == SSL_SESS_CACHE_NO_AUTO_CLEAR)
|
||||
ctx->SetSessionCacheFlushOff();
|
||||
|
||||
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)
|
||||
{
|
||||
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
|
||||
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();
|
||||
}
|
||||
@ -604,7 +617,7 @@ char* X509_NAME_oneline(X509_NAME* name, char* buffer, int sz)
|
||||
{
|
||||
if (!name->GetName()) return buffer;
|
||||
|
||||
int len = strlen(name->GetName()) + 1;
|
||||
int len = (int)strlen(name->GetName()) + 1;
|
||||
int copySz = min(len, sz);
|
||||
|
||||
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)
|
||||
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)
|
||||
ctx->setFailNoCert();
|
||||
|
||||
ctx->setVerifyCallback(vc);
|
||||
}
|
||||
|
||||
|
||||
@ -1450,6 +1465,8 @@ unsigned long err_helper(bool peek = false)
|
||||
default :
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0; // shut up compiler
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 MySQL AB
|
||||
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
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 <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 {
|
||||
|
||||
|
||||
|
@ -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
|
||||
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();
|
||||
|
||||
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(),
|
||||
cert.get_privateKeyLength(), false));
|
||||
}
|
||||
else {
|
||||
if (cert.get_keyType() != dsa_sa_algo) {
|
||||
ssl.SetError(privateKey_error);
|
||||
return;
|
||||
}
|
||||
auth.reset(NEW_YS DSS(cert.get_privateKey(),
|
||||
cert.get_privateKeyLength(), false));
|
||||
sigSz += DSS_ENCODED_EXTRA;
|
||||
@ -436,18 +446,21 @@ Parameters::Parameters(ConnectionEnd ce, const Ciphers& ciphers,
|
||||
pending_ = true; // suite not set yet
|
||||
strncpy(cipher_name_, "NONE", 5);
|
||||
|
||||
removeDH_ = !haveDH; // only use on server side for set suites
|
||||
|
||||
if (ciphers.setSuites_) { // use user set list
|
||||
suites_size_ = ciphers.suiteSz_;
|
||||
memcpy(suites_, ciphers.suites_, ciphers.suiteSz_);
|
||||
SetCipherNames();
|
||||
}
|
||||
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;
|
||||
// available suites, best first
|
||||
@ -456,67 +469,87 @@ void Parameters::SetSuites(ProtocolVersion pv, bool removeDH)
|
||||
|
||||
if (isTLS(pv)) {
|
||||
if (!removeDH) {
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = TLS_DHE_RSA_WITH_AES_256_CBC_SHA;
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = TLS_DHE_DSS_WITH_AES_256_CBC_SHA;
|
||||
if (!removeRSA) {
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = TLS_DHE_RSA_WITH_AES_256_CBC_SHA;
|
||||
}
|
||||
if (!removeDSA) {
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = TLS_DHE_DSS_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;
|
||||
if (!removeRSA) {
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = TLS_RSA_WITH_AES_256_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) {
|
||||
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;
|
||||
|
||||
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;
|
||||
}
|
||||
if (!removeRSA) {
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = TLS_DHE_RSA_WITH_AES_128_CBC_SHA;
|
||||
}
|
||||
if (!removeDSA) {
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = TLS_DHE_DSS_WITH_AES_128_CBC_SHA;
|
||||
}
|
||||
}
|
||||
if (!removeRSA) {
|
||||
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 (!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;
|
||||
suites_[i++] = SSL_RSA_WITH_RC4_128_SHA;
|
||||
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;
|
||||
if (!removeRSA) {
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = SSL_RSA_WITH_RC4_128_SHA;
|
||||
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;
|
||||
}
|
||||
if (!removeDH) {
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA;
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA;
|
||||
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = SSL_DHE_RSA_WITH_DES_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_3DES_EDE_CBC_SHA;
|
||||
}
|
||||
if (!removeDSA) {
|
||||
suites_[i++] = 0x00;
|
||||
suites_[i++] = SSL_DHE_DSS_WITH_3DES_EDE_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;
|
||||
@ -532,7 +565,7 @@ void Parameters::SetCipherNames()
|
||||
|
||||
for (int j = 0; j < suites; j++) {
|
||||
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);
|
||||
}
|
||||
cipher_list_[pos][0] = 0;
|
||||
@ -1469,7 +1502,19 @@ void ClientHello::Process(input_buffer&, SSL& ssl)
|
||||
// downgrade to SSLv3
|
||||
ssl.useSecurity().use_connection().TurnOffTLS();
|
||||
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)
|
||||
// downgrade to TLSv1, but use same suites
|
||||
@ -1515,6 +1560,7 @@ void ClientHello::Process(input_buffer&, SSL& ssl)
|
||||
return;
|
||||
}
|
||||
ssl.matchSuite(cipher_suites_, suite_len_);
|
||||
if (ssl.GetError()) return;
|
||||
ssl.set_pending(ssl.getSecurity().get_parms().suite_[1]);
|
||||
|
||||
if (compression_methods_ == zlib)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 MySQL AB
|
||||
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
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* ptr = malloc(sz ? sz : 1);
|
||||
if (!ptr) abort();
|
||||
void* ptr = malloc(sz ? sz : 1);
|
||||
if (!ptr) abort();
|
||||
|
||||
return ptr;
|
||||
return ptr;
|
||||
}
|
||||
|
||||
|
||||
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)
|
||||
{
|
||||
return ::operator new(sz, nt);
|
||||
return ::operator new(sz, nt);
|
||||
}
|
||||
|
||||
|
||||
void operator delete[](void* ptr, yaSSL::new_t nt)
|
||||
{
|
||||
::operator delete(ptr, nt);
|
||||
::operator delete(ptr, nt);
|
||||
}
|
||||
|
||||
namespace yaSSL {
|
||||
@ -308,6 +308,20 @@ SSL::SSL(SSL_CTX* ctx)
|
||||
SetError(YasslError(err));
|
||||
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) {
|
||||
SetError(no_key_file);
|
||||
@ -320,6 +334,7 @@ SSL::SSL(SSL_CTX* ctx)
|
||||
cm.setVerifyNone();
|
||||
if (ctx->getMethod()->failNoCert())
|
||||
cm.setFailNoCert();
|
||||
cm.setVerifyCallback(ctx->getVerifyCallback());
|
||||
|
||||
if (serverSide)
|
||||
crypto_.SetDH(ctx->GetDH_Parms());
|
||||
@ -1034,12 +1049,12 @@ void SSL::fillData(Data& data)
|
||||
{
|
||||
if (GetError()) return;
|
||||
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
|
||||
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();
|
||||
uint frontSz = front->get_remaining();
|
||||
uint readSz = min(dataSz - data.get_length(), frontSz);
|
||||
@ -1063,8 +1078,8 @@ void SSL::fillData(Data& data)
|
||||
void SSL::PeekData(Data& data)
|
||||
{
|
||||
if (GetError()) return;
|
||||
uint dataSz = data.get_length(); // input, data size to fill
|
||||
uint elements = buffers_.getData().size();
|
||||
uint dataSz = data.get_length(); // input, data size to fill
|
||||
size_t elements = buffers_.getData().size();
|
||||
|
||||
data.set_length(0); // output, actual data filled
|
||||
dataSz = min(dataSz, bufferedData());
|
||||
@ -1098,9 +1113,9 @@ void SSL::flushBuffer()
|
||||
buffers_.getHandShake().end(),
|
||||
SumBuffer()).total_;
|
||||
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();
|
||||
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]) {
|
||||
secure_.use_parms().suite_[0] = 0x00;
|
||||
secure_.use_parms().suite_[1] = peer[j];
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1284,7 +1300,7 @@ void SSL::matchSuite(const opaque* peer, uint length)
|
||||
|
||||
|
||||
void SSL::set_session(SSL_SESSION* s)
|
||||
{
|
||||
{
|
||||
if (getSecurity().GetContext()->GetSessionCacheOff())
|
||||
return;
|
||||
|
||||
@ -1565,13 +1581,19 @@ Errors& GetErrors()
|
||||
|
||||
typedef Mutex::Lock Lock;
|
||||
|
||||
|
||||
|
||||
void Sessions::add(const SSL& ssl)
|
||||
{
|
||||
if (ssl.getSecurity().get_connection().sessionID_Set_) {
|
||||
Lock guard(mutex_);
|
||||
list_.push_back(NEW_YS SSL_SESSION(ssl, random_));
|
||||
Lock guard(mutex_);
|
||||
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
|
||||
void Errors::Remove()
|
||||
{
|
||||
@ -1764,7 +1805,8 @@ bool SSL_METHOD::multipleProtocol() const
|
||||
|
||||
SSL_CTX::SSL_CTX(SSL_METHOD* meth)
|
||||
: 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
|
||||
{
|
||||
return certificate_;
|
||||
@ -1851,6 +1899,12 @@ bool SSL_CTX::GetSessionCacheOff() const
|
||||
}
|
||||
|
||||
|
||||
bool SSL_CTX::GetSessionCacheFlushOff() const
|
||||
{
|
||||
return sessionCacheFlushOff_;
|
||||
}
|
||||
|
||||
|
||||
void SSL_CTX::SetUserData(void* data)
|
||||
{
|
||||
userData_ = data;
|
||||
@ -1863,6 +1917,12 @@ void SSL_CTX::SetSessionCacheOff()
|
||||
}
|
||||
|
||||
|
||||
void SSL_CTX::SetSessionCacheFlushOff()
|
||||
{
|
||||
sessionCacheFlushOff_ = true;
|
||||
}
|
||||
|
||||
|
||||
void SSL_CTX::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)
|
||||
{
|
||||
dhParms_.p_ = dh.p->int_;
|
||||
@ -1906,7 +1972,7 @@ bool SSL_CTX::SetCipherList(const char* list)
|
||||
int idx = 0;
|
||||
|
||||
for(;;) {
|
||||
int len;
|
||||
size_t len;
|
||||
prev = haystack;
|
||||
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),
|
||||
beforeDate_(b, bSz), afterDate_(a, aSz)
|
||||
{}
|
||||
|
||||
|
||||
|
||||
X509_NAME* X509::GetIssuer()
|
||||
{
|
||||
@ -2354,10 +2420,10 @@ ASN1_STRING* X509_NAME::GetEntry(int i)
|
||||
memcpy(entry_.data, &name_[i], sz_ - i);
|
||||
if (entry_.data[sz_ -i - 1]) {
|
||||
entry_.data[sz_ - i] = 0;
|
||||
entry_.length = sz_ - i;
|
||||
entry_.length = int(sz_) - i;
|
||||
}
|
||||
else
|
||||
entry_.length = sz_ - i - 1;
|
||||
entry_.length = int(sz_) - i - 1;
|
||||
entry_.type = 0;
|
||||
|
||||
return &entry_;
|
||||
|
@ -18,11 +18,6 @@
|
||||
#ifndef _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
|
||||
need. This is because of InnoDB's foreign key support, "safe" binlog
|
||||
@ -101,6 +96,11 @@
|
||||
#endif
|
||||
#endif /* !EMBEDDED_LIBRARY */
|
||||
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
#define HAVE_REPLICATION
|
||||
#define HAVE_EXTERNAL_CLIENT
|
||||
#endif
|
||||
|
||||
/* Some defines to avoid ifdefs in the code */
|
||||
#ifndef NETWARE_YIELD
|
||||
#define NETWARE_YIELD
|
||||
|
@ -207,9 +207,7 @@ void STDCALL mysql_server_end()
|
||||
/* If library called my_init(), free memory allocated by it */
|
||||
if (!org_my_init_done)
|
||||
{
|
||||
my_end(MY_DONT_FREE_DBUG);
|
||||
/* Remove TRACING, if enabled by mysql_debug() */
|
||||
DBUG_POP();
|
||||
my_end(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -29,13 +29,13 @@ ADD_DEFINITIONS(-DEMBEDDED_LIBRARY)
|
||||
ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc
|
||||
../../client/mysql.cc ../../client/readline.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_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.cc)
|
||||
TARGET_LINK_LIBRARIES(mysqltest_embedded mysys yassl taocrypt zlib debug dbug regex strings wsock32)
|
||||
ADD_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.c)
|
||||
TARGET_LINK_LIBRARIES(mysqltest_embedded debug dbug strings mysys vio yassl taocrypt regex ws2_32)
|
||||
ADD_DEPENDENCIES(mysqltest_embedded libmysqld)
|
||||
|
||||
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)
|
||||
|
@ -384,7 +384,9 @@ static void emb_free_embedded_thd(MYSQL *mysql)
|
||||
thd->clear_data_list();
|
||||
thread_count--;
|
||||
thd->store_globals();
|
||||
thd->unlink();
|
||||
delete thd;
|
||||
my_pthread_setspecific_ptr(THR_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
|
||||
|
||||
if (flush_time && flush_time != ~(ulong) 0L)
|
||||
{
|
||||
pthread_t hThread;
|
||||
if (pthread_create(&hThread,&connection_attrib,handle_manager,0))
|
||||
sql_print_error("Warning: Can't create thread to manage maintenance");
|
||||
}
|
||||
start_handle_manager();
|
||||
|
||||
// FIXME initialize binlog_filter and rpl_filter if not already done
|
||||
// corresponding delete is in clean_up()
|
||||
@ -627,6 +624,7 @@ void *create_embedded_thd(int client_flag)
|
||||
bzero((char*) &thd->net, sizeof(thd->net));
|
||||
|
||||
thread_count++;
|
||||
threads.append(thd);
|
||||
return thd;
|
||||
err:
|
||||
delete(thd);
|
||||
|
@ -2,34 +2,6 @@ LIBRARY LIBMYSQLD
|
||||
DESCRIPTION 'MySQL 5.1 Embedded Server Library'
|
||||
VERSION 5.1
|
||||
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_init
|
||||
myodbc_remove_escape
|
||||
@ -102,47 +74,13 @@ EXPORTS
|
||||
mysql_thread_safe
|
||||
mysql_use_result
|
||||
mysql_warning_count
|
||||
set_dynamic
|
||||
strcend
|
||||
strcont
|
||||
strdup_root
|
||||
strfill
|
||||
strinstr
|
||||
strmake
|
||||
strmov
|
||||
strxmov
|
||||
mysql_server_end
|
||||
mysql_server_init
|
||||
get_tty_password
|
||||
sql_protocol_typelib
|
||||
mysql_get_server_version
|
||||
mysql_set_character_set
|
||||
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_thread_init
|
||||
mysql_thread_end
|
||||
mysql_stmt_bind_param
|
||||
mysql_stmt_bind_result
|
||||
mysql_stmt_execute
|
||||
@ -170,7 +108,3 @@ EXPORTS
|
||||
mysql_stmt_attr_get
|
||||
mysql_stmt_attr_set
|
||||
mysql_stmt_field_count
|
||||
get_defaults_options
|
||||
my_charset_bin
|
||||
my_charset_same
|
||||
modify_defaults_file
|
||||
|
@ -235,8 +235,10 @@ BEGIN
|
||||
FROM information_schema.global_variables
|
||||
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 @@global.max_allowed_packet= @old_max_allowed_packet;
|
||||
-- select text;
|
||||
|
||||
SET pos= LOCATE('\n', text);
|
||||
|
@ -1754,8 +1754,8 @@ create table t1 like information_schema.character_sets;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATE_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
||||
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||
|
40
mysql-test/r/csv_alter_table.result
Normal file
40
mysql-test/r/csv_alter_table.result
Normal file
@ -0,0 +1,40 @@
|
||||
# ===== csv_alter_table.1 =====
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a int NOT NULL) ENGINE = CSV;
|
||||
ALTER TABLE t1 ADD COLUMN b CHAR(5) NOT NULL;
|
||||
DESC t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) NO NULL
|
||||
b char(5) NO NULL
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
DESC t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) NO NULL
|
||||
ALTER TABLE t1 MODIFY a BIGINT NOT NULL;
|
||||
DESC t1;
|
||||
Field Type Null Key Default Extra
|
||||
a bigint(20) NO NULL
|
||||
ALTER TABLE t1 CHANGE a a INT NOT NULL;
|
||||
DESC t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) NO NULL
|
||||
DROP TABLE t1;
|
||||
# ===== csv_alter_table.2 =====
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a int NOT NULL) ENGINE = CSV;
|
||||
ALTER TABLE t1 ADD COLUMN b CHAR(5);
|
||||
ERROR 42000: The storage engine for the table doesn't support nullable columns
|
||||
DESC t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) NO NULL
|
||||
ALTER TABLE t1 MODIFY a BIGINT;
|
||||
ERROR 42000: The storage engine for the table doesn't support nullable columns
|
||||
DESC t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) NO NULL
|
||||
ALTER TABLE t1 CHANGE a a INT;
|
||||
ERROR 42000: The storage engine for the table doesn't support nullable columns
|
||||
DESC t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) NO NULL
|
||||
DROP TABLE t1;
|
11
mysql-test/r/ctype_filesystem.result
Normal file
11
mysql-test/r/ctype_filesystem.result
Normal file
@ -0,0 +1,11 @@
|
||||
SET CHARACTER SET utf8;
|
||||
SHOW VARIABLES like 'character_sets_dir';
|
||||
Variable_name Value
|
||||
character_sets_dir MYSQL_TEST_DIR/ß/
|
||||
SHOW VARIABLES like 'character_set_filesystem';
|
||||
Variable_name Value
|
||||
character_set_filesystem latin1
|
||||
SHOW VARIABLES like 'character_set_client';
|
||||
Variable_name Value
|
||||
character_set_client utf8
|
||||
SET CHARACTER SET default;
|
@ -1848,3 +1848,35 @@ select hex(_utf8 B'001111111111');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select (_utf8 X'616263FF');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL);
|
||||
INSERT INTO t1 VALUES (70000, 1092), (70001, 1085), (70002, 1065);
|
||||
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||
CONVERT(a, CHAR) CONVERT(b, CHAR)
|
||||
70002 1065
|
||||
70001 1085
|
||||
70000 1092
|
||||
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1;
|
||||
CONVERT(a, CHAR) CONVERT(b, CHAR)
|
||||
70000 1092
|
||||
70001 1085
|
||||
70002 1065
|
||||
ALTER TABLE t1 ADD UNIQUE (b);
|
||||
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||
CONVERT(a, CHAR) CONVERT(b, CHAR)
|
||||
70002 1065
|
||||
70001 1085
|
||||
70000 1092
|
||||
DROP INDEX b ON t1;
|
||||
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||
CONVERT(a, CHAR) CONVERT(b, CHAR)
|
||||
70002 1065
|
||||
70001 1085
|
||||
70000 1092
|
||||
ALTER TABLE t1 ADD INDEX (b);
|
||||
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) from t1 GROUP BY b;
|
||||
CONVERT(a, CHAR) CONVERT(b, CHAR)
|
||||
70002 1065
|
||||
70001 1085
|
||||
70000 1092
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
|
@ -1,7 +1,8 @@
|
||||
CREATE DATABASE IF NOT EXISTS events_test;
|
||||
USE events_test;
|
||||
SET @event_scheduler=@@global.event_scheduler;
|
||||
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;
|
||||
SHOW VARIABLES LIKE 'event_scheduler';
|
||||
Variable_name Value
|
||||
@ -64,8 +65,8 @@ INSERT INTO table_4 VALUES (1);
|
||||
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_1;
|
||||
IF(SUM(a) >= 4, 'OK', 'ERROR')
|
||||
OK
|
||||
SELECT IF(SUM(a) >= 5, 'OK', 'ERROR') FROM table_2;
|
||||
IF(SUM(a) >= 5, 'OK', 'ERROR')
|
||||
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_2;
|
||||
IF(SUM(a) >= 4, 'OK', 'ERROR')
|
||||
OK
|
||||
SELECT IF(SUM(a) >= 1, 'OK', 'ERROR') FROM table_3;
|
||||
IF(SUM(a) >= 1, 'OK', 'ERROR')
|
||||
@ -94,4 +95,4 @@ DROP TABLE table_2;
|
||||
DROP TABLE table_3;
|
||||
DROP TABLE table_4;
|
||||
DROP DATABASE events_test;
|
||||
SET GLOBAL event_scheduler=OFF;
|
||||
SET GLOBAL event_scheduler=@event_scheduler;
|
||||
|
@ -14,6 +14,7 @@ RETURN FLOOR((i % (step * n) + 0.1) / step);
|
||||
END//
|
||||
SET @step3= @step * 3;
|
||||
SET @step6= @step * 6;
|
||||
SET @unix_time= UNIX_TIMESTAMP() - 1;
|
||||
SET @unix_time= @unix_time - @unix_time % @step6;
|
||||
INSERT INTO mysql.time_zone VALUES (NULL, 'N');
|
||||
SET @tzid= LAST_INSERT_ID();
|
||||
@ -21,7 +22,7 @@ INSERT INTO mysql.time_zone_transition_type
|
||||
VALUES (@tzid, 0, 0, 0, 'b16420_0');
|
||||
INSERT INTO mysql.time_zone_transition_type
|
||||
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 t2 (count INT);
|
||||
INSERT INTO t2 VALUES (1);
|
||||
@ -48,7 +49,7 @@ END//
|
||||
SET TIME_ZONE= '+00:00';
|
||||
CREATE EVENT e1 ON SCHEDULE EVERY @step SECOND
|
||||
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
|
||||
STARTS FROM_UNIXTIME(@unix_time) DO SELECT f1("<e2>");
|
||||
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 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';
|
||||
CREATE TABLE t1 (event CHAR(2), dt DATE, offset INT);
|
||||
INSERT INTO mysql.time_zone VALUES (NULL, 'N');
|
||||
@ -111,8 +113,8 @@ INSERT INTO mysql.time_zone_transition
|
||||
VALUES (@tzid, @now + 7 * @step, 2);
|
||||
INSERT INTO mysql.time_zone_transition
|
||||
VALUES (@tzid, @now + 12 * @step, 3);
|
||||
INSERT INTO mysql.time_zone_name VALUES ('bug16420_2', @tzid);
|
||||
SET TIME_ZONE= 'bug16420_2';
|
||||
INSERT INTO mysql.time_zone_name VALUES ('<TZ_NAME_2>', @tzid);
|
||||
SET TIME_ZONE= '<TZ_NAME_2>';
|
||||
SET GLOBAL EVENT_SCHEDULER= ON;
|
||||
SET GLOBAL EVENT_SCHEDULER= OFF;
|
||||
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 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 TABLE t_step;
|
||||
DROP DATABASE mysqltest_db1;
|
||||
|
@ -494,3 +494,31 @@ SELECT a FROM t1 WHERE MATCH a AGAINST ('+city* of*' IN BOOLEAN MODE);
|
||||
a
|
||||
City Of God
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a VARCHAR(255), b INT, FULLTEXT(a), KEY(b));
|
||||
INSERT INTO t1 VALUES('test', 1),('test', 1),('test', 1),('test', 1),
|
||||
('test', 1),('test', 2),('test', 3),('test', 4);
|
||||
EXPLAIN SELECT * FROM t1
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 fulltext b,a a 0 1 Using where
|
||||
EXPLAIN SELECT * FROM t1 USE INDEX(a)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 fulltext a a 0 1 Using where
|
||||
EXPLAIN SELECT * FROM t1 FORCE INDEX(a)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 fulltext a a 0 1 Using where
|
||||
EXPLAIN SELECT * FROM t1 IGNORE INDEX(a)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref b b 5 const 4 Using where
|
||||
EXPLAIN SELECT * FROM t1 USE INDEX(b)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref b b 5 const 4 Using where
|
||||
EXPLAIN SELECT * FROM t1 FORCE INDEX(b)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref b b 5 const 4 Using where
|
||||
DROP TABLE t1;
|
||||
|
@ -68,7 +68,7 @@ Warnings:
|
||||
Error 1259 ZLIB: Input data corrupted
|
||||
Error 1256 Uncompressed data size too large; the maximum size is 1048576 (probably, length of uncompressed data was corrupted)
|
||||
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;
|
||||
compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null
|
||||
0
|
||||
|
@ -1453,4 +1453,27 @@ LIMIT 1)
|
||||
1
|
||||
DROP TABLE derived1;
|
||||
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
|
||||
|
@ -256,3 +256,15 @@ a
|
||||
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")
|
||||
2003-01-02 10:11:12.001200
|
||||
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10'),time('00:00:00');
|
||||
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10') time('00:00:00')
|
||||
-24:00:00 00:00:00
|
||||
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00');
|
||||
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00')
|
||||
0
|
||||
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00');
|
||||
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00')
|
||||
1
|
||||
SELECT CAST(time('-73:42:12') AS DECIMAL);
|
||||
CAST(time('-73:42:12') AS DECIMAL)
|
||||
-734212
|
||||
|
@ -26,7 +26,7 @@ SELECT @@general_log;
|
||||
INSERT into t1(name) values('Record_3');
|
||||
INSERT into t1(name) values('Record_4');
|
||||
## 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 @copy_file= load_file('MYSQLD_LOGFILE.copy');
|
||||
SELECT STRCMP(@orig_file, @copy_file);
|
||||
|
@ -1,31 +1,41 @@
|
||||
SET @save = @@global.group_concat_max_len;
|
||||
drop table if exists t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
## Creating new table t1 ##
|
||||
CREATE TABLE t1
|
||||
(
|
||||
id INT NOT NULL auto_increment,
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (id),
|
||||
rollno int NOT NULL,
|
||||
rollno INT NOT NULL,
|
||||
name VARCHAR(30)
|
||||
);
|
||||
'#--------------------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;
|
||||
## Inserting some rows in table ##
|
||||
INSERT into t1(rollno, name) values(1, 'Record_1');
|
||||
INSERT into t1(rollno, name) values(2, 'Record_2');
|
||||
INSERT into t1(rollno, name) values(1, 'Record_3');
|
||||
INSERT into t1(rollno, name) values(3, 'Record_4');
|
||||
INSERT into t1(rollno, name) values(1, 'Record_5');
|
||||
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_8');
|
||||
## Creating two new connections ##
|
||||
## Inserting some rows in table ##
|
||||
INSERT INTO t1(rollno, name) VALUES(1, 'Record_1');
|
||||
INSERT INTO t1(rollno, name) VALUES(2, 'Record_2');
|
||||
INSERT INTO t1(rollno, name) VALUES(1, 'Record_3');
|
||||
INSERT INTO t1(rollno, name) VALUES(3, 'Record_4');
|
||||
INSERT INTO t1(rollno, name) VALUES(1, 'Record_5');
|
||||
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_8');
|
||||
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-------------------------#'
|
||||
## Connecting with test_con1 ##
|
||||
## 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;
|
||||
id rollno group_concat(name)
|
||||
## 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;
|
||||
id rollno GROUP_CONCAT(name)
|
||||
1 1 Reco
|
||||
2 2 Reco
|
||||
4 3 Reco
|
||||
@ -33,10 +43,10 @@ id rollno group_concat(name)
|
||||
Warnings:
|
||||
Warning 1260 4 line(s) were cut by GROUP_CONCAT()
|
||||
## Changing session value of variable and verifying its behavior, ##
|
||||
## warning should come here ##
|
||||
## warning should come here ##
|
||||
SET @@session.group_concat_max_len = 10;
|
||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
||||
id rollno group_concat(name)
|
||||
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
|
||||
id rollno GROUP_CONCAT(name)
|
||||
1 1 Record_1,R
|
||||
2 2 Record_2
|
||||
4 3 Record_4,R
|
||||
@ -44,18 +54,18 @@ id rollno group_concat(name)
|
||||
Warnings:
|
||||
Warning 1260 3 line(s) were cut by GROUP_CONCAT()
|
||||
'#--------------------FN_DYNVARS_034_03-------------------------#'
|
||||
## Connecting with new connection test_con2 ##
|
||||
## Verifying initial value of variable. It should be 4 ##
|
||||
## Connecting with new connection test_con2 ##
|
||||
## Verifying initial value of variable. It should be 4 ##
|
||||
SELECT @@session.group_concat_max_len = 4;
|
||||
@@session.group_concat_max_len = 4
|
||||
1
|
||||
## Setting session value of variable to 20 and verifying variable is concating ##
|
||||
## column's value to 20 or not ##
|
||||
## Setting session value of variable to 20 and verifying variable is concating ##
|
||||
## column's value to 20 or not ##
|
||||
SET @@session.group_concat_max_len = 20;
|
||||
## Verifying value of name column, it should not me more than 20 characters ##
|
||||
## Warning should come here ##
|
||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
||||
id rollno group_concat(name)
|
||||
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
|
||||
id rollno GROUP_CONCAT(name)
|
||||
1 1 Record_1,Record_3,Re
|
||||
2 2 Record_2
|
||||
4 3 Record_4,Record_6
|
||||
@ -63,17 +73,17 @@ id rollno group_concat(name)
|
||||
Warnings:
|
||||
Warning 1260 1 line(s) were cut by GROUP_CONCAT()
|
||||
'#--------------------FN_DYNVARS_034_04-------------------------#'
|
||||
## Setting session value of variable to 26. No warning should appear here ##
|
||||
## because the value after concatination is less than 30 ##
|
||||
## Setting session value of variable to 26. No warning should appear here ##
|
||||
## because the value after concatination is less than 30 ##
|
||||
SET @@session.group_concat_max_len = 26;
|
||||
## Verifying value of name column, it should not give warning now ##
|
||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
||||
id rollno group_concat(name)
|
||||
## Verifying value of name column, it should not give warning now ##
|
||||
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
|
||||
id rollno GROUP_CONCAT(name)
|
||||
1 1 Record_1,Record_3,Record_5
|
||||
2 2 Record_2
|
||||
4 3 Record_4,Record_6
|
||||
7 4 Record_7,Record_8
|
||||
## Dropping table t1 ##
|
||||
DROP table t1;
|
||||
DROP TABLE t1;
|
||||
## Disconnecting both the connection ##
|
||||
SET @@global.group_concat_max_len = @save;
|
||||
|
@ -525,8 +525,8 @@ drop table t1;
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
|
||||
Table Create Table
|
||||
CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
|
||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATE_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
||||
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||
@ -534,8 +534,8 @@ set names latin2;
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
|
||||
Table Create Table
|
||||
CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
|
||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATE_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
||||
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||
@ -549,8 +549,8 @@ alter table t1 default character set utf8;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATE_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
||||
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
||||
) 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
|
||||
(column_name="character_set_name" or column_name="collation_name");
|
||||
column_type
|
||||
varchar(64)
|
||||
varchar(64)
|
||||
varchar(32)
|
||||
varchar(32)
|
||||
select TABLE_ROWS from information_schema.tables where
|
||||
table_schema="information_schema" and table_name="COLUMNS";
|
||||
TABLE_ROWS
|
||||
@ -772,7 +772,6 @@ information_schema PARTITIONS PARTITION_DESCRIPTION
|
||||
information_schema PLUGINS PLUGIN_DESCRIPTION
|
||||
information_schema PROCESSLIST INFO
|
||||
information_schema ROUTINES ROUTINE_DEFINITION
|
||||
information_schema ROUTINES SQL_MODE
|
||||
information_schema TRIGGERS ACTION_CONDITION
|
||||
information_schema TRIGGERS ACTION_STATEMENT
|
||||
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;
|
||||
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
|
||||
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.
|
||||
|
@ -145,3 +145,9 @@ table_schema = "test" AND table_name = "t1";
|
||||
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
|
||||
drop table t1;
|
||||
drop table if exists t1;
|
||||
create table t1 (f1 int key) partition by key(f1) partitions 2;
|
||||
select create_options from information_schema.tables where table_schema="test";
|
||||
create_options
|
||||
partitioned
|
||||
drop table t1;
|
||||
|
@ -1677,3 +1677,9 @@ select @@session.sql_log_bin, @@session.binlog_format, @@session.tx_isolation;
|
||||
CREATE TABLE t1 ( a INT ) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES(1);
|
||||
DROP TABLE t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a char(50)) ENGINE=InnoDB;
|
||||
CREATE INDEX i1 on t1 (a(3));
|
||||
SELECT * FROM t1 WHERE a = 'abcde';
|
||||
a
|
||||
DROP TABLE t1;
|
||||
|
@ -1,13 +1,11 @@
|
||||
SET @start_value= @@global.log_output;
|
||||
SET @start_general_log= @@global.general_log;
|
||||
SET @start_general_log_file= @@global.general_log_file;
|
||||
'#--------------------FN_DYNVARS_065_01-------------------------#'
|
||||
SET @@global.log_output = 'NONE';
|
||||
'connect (con1,localhost,root,,,,)'
|
||||
'connection con1'
|
||||
SELECT @@global.log_output;
|
||||
@@global.log_output
|
||||
NONE
|
||||
SET @@global.log_output = 'TABLE,FILE';
|
||||
'connect (con2,localhost,root,,,,)'
|
||||
'connection con2'
|
||||
SELECT @@global.log_output;
|
||||
@@global.log_output
|
||||
FILE,TABLE
|
||||
@ -18,7 +16,7 @@ SET @@global.log_output = 'NONE';
|
||||
TRUNCATE TABLE mysql.general_log;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 value(1);
|
||||
INSERT INTO t1 VALUE(1);
|
||||
SELECT 'abc';
|
||||
abc
|
||||
abc
|
||||
@ -29,25 +27,33 @@ count(*)
|
||||
SET @@global.log_output = 'TABLE';
|
||||
TRUNCATE TABLE mysql.general_log;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(a int);
|
||||
INSERT INTO t1 value(1);
|
||||
CREATE TABLE t1(a int);
|
||||
INSERT INTO t1 VALUE(1);
|
||||
SELECT 'abc';
|
||||
abc
|
||||
abc
|
||||
SELECT count(*) from mysql.general_log;
|
||||
count(*)
|
||||
5
|
||||
'Bug#35371: Changing general_log file is crashing server'
|
||||
'SET @@global.general_log_file = @log_file;'
|
||||
SELECT count(*)>4 FROM mysql.general_log;
|
||||
count(*)>4
|
||||
1
|
||||
SET @@global.general_log = 'OFF';
|
||||
FLUSH LOGS;
|
||||
SET @@global.general_log_file = 'MYSQLTEST_VARDIR/run/mytest.log';
|
||||
SET @@global.general_log = 'ON';
|
||||
SET @@global.log_output = 'FILE';
|
||||
TRUNCATE TABLE mysql.general_log;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(a int);
|
||||
INSERT INTO t1 value(1);
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 VALUE(1);
|
||||
SELECT 'abc';
|
||||
abc
|
||||
abc
|
||||
SELECT count(*) from mysql.general_log;
|
||||
SELECT count(*) FROM mysql.general_log;
|
||||
count(*)
|
||||
0
|
||||
DROP TABLE t1;
|
||||
connection default;
|
||||
SET @@global.general_log= 'OFF';
|
||||
SET @@global.general_log_file= @start_general_log_file;
|
||||
SET @@global.log_output= @start_value;
|
||||
SET @@global.general_log= @start_general_log;
|
||||
SET @@global.general_log= 'ON';
|
||||
|
@ -2,10 +2,7 @@ SET @start_global_value = @@global.max_allowed_packet;
|
||||
SELECT @start_global_value;
|
||||
@start_global_value
|
||||
1048576
|
||||
SET @start_session_value = @@session.max_allowed_packet;
|
||||
SELECT @start_session_value;
|
||||
@start_session_value
|
||||
1048576
|
||||
SET @@global.max_allowed_packet = DEFAULT;
|
||||
'#--------------------FN_DYNVARS_070_01-------------------------#'
|
||||
SET @@global.max_allowed_packet = 1000;
|
||||
Warnings:
|
||||
@ -15,7 +12,9 @@ SELECT @@global.max_allowed_packet;
|
||||
@@global.max_allowed_packet
|
||||
1048576
|
||||
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;
|
||||
ERROR 42000: Variable 'max_allowed_packet' doesn't have a default value
|
||||
SELECT @@session.max_allowed_packet;
|
||||
@@session.max_allowed_packet
|
||||
1048576
|
||||
@ -24,10 +23,6 @@ SET @@global.max_allowed_packet = DEFAULT;
|
||||
SELECT @@global.max_allowed_packet = 1048576;
|
||||
@@global.max_allowed_packet = 1048576
|
||||
1
|
||||
SET @@session.max_allowed_packet = DEFAULT;
|
||||
SELECT @@session.max_allowed_packet = 1048576;
|
||||
@@session.max_allowed_packet = 1048576
|
||||
1
|
||||
'#--------------------FN_DYNVARS_070_03-------------------------#'
|
||||
SET @@global.max_allowed_packet = 1024;
|
||||
SELECT @@global.max_allowed_packet;
|
||||
@ -48,25 +43,30 @@ SELECT @@global.max_allowed_packet;
|
||||
1073740800
|
||||
'#--------------------FN_DYNVARS_070_04-------------------------#'
|
||||
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;
|
||||
@@session.max_allowed_packet
|
||||
1024
|
||||
1048576
|
||||
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;
|
||||
@@session.max_allowed_packet
|
||||
1024
|
||||
1048576
|
||||
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;
|
||||
@@session.max_allowed_packet
|
||||
64512
|
||||
1048576
|
||||
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;
|
||||
@@session.max_allowed_packet
|
||||
1073741824
|
||||
1048576
|
||||
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;
|
||||
@@session.max_allowed_packet
|
||||
1073740800
|
||||
1048576
|
||||
'#------------------FN_DYNVARS_070_05-----------------------#'
|
||||
SET @@global.max_allowed_packet = 0;
|
||||
Warnings:
|
||||
@ -103,37 +103,33 @@ SELECT @@global.max_allowed_packet;
|
||||
@@global.max_allowed_packet
|
||||
1073741824
|
||||
SET @@session.max_allowed_packet = 0;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect max_allowed_packet value: '0'
|
||||
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||
SELECT @@session.max_allowed_packet;
|
||||
@@session.max_allowed_packet
|
||||
1024
|
||||
1048576
|
||||
SET @@session.max_allowed_packet = 1023;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect max_allowed_packet value: '1023'
|
||||
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||
SELECT @@session.max_allowed_packet;
|
||||
@@session.max_allowed_packet
|
||||
1024
|
||||
1048576
|
||||
SET @@session.max_allowed_packet = -2;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect max_allowed_packet value: '0'
|
||||
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||
SELECT @@session.max_allowed_packet;
|
||||
@@session.max_allowed_packet
|
||||
1024
|
||||
1048576
|
||||
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
|
||||
SET @@session.max_allowed_packet = 10737418241;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect max_allowed_packet value: '10737418241'
|
||||
ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
|
||||
SELECT @@session.max_allowed_packet;
|
||||
@@session.max_allowed_packet
|
||||
1073741824
|
||||
1048576
|
||||
'Bug # 34837: Errors are not coming on assigning invalid values to variable';
|
||||
SET @@session.max_allowed_packet = test;
|
||||
ERROR 42000: Incorrect argument type to variable 'max_allowed_packet'
|
||||
SELECT @@session.max_allowed_packet;
|
||||
@@session.max_allowed_packet
|
||||
1073741824
|
||||
1048576
|
||||
'#------------------FN_DYNVARS_070_06-----------------------#'
|
||||
SELECT @@global.max_allowed_packet = VARIABLE_VALUE
|
||||
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
||||
@ -166,6 +162,7 @@ SELECT @@max_allowed_packet = @@global.max_allowed_packet;
|
||||
0
|
||||
'#---------------------FN_DYNVARS_070_10----------------------#'
|
||||
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;
|
||||
@@max_allowed_packet = @@local.max_allowed_packet
|
||||
1
|
||||
@ -174,9 +171,10 @@ SELECT @@local.max_allowed_packet = @@session.max_allowed_packet;
|
||||
1
|
||||
'#---------------------FN_DYNVARS_070_11----------------------#'
|
||||
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;
|
||||
@@max_allowed_packet
|
||||
1024
|
||||
1048576
|
||||
SELECT local.max_allowed_packet;
|
||||
ERROR 42S02: Unknown table 'local' in field list
|
||||
SELECT session.max_allowed_packet;
|
||||
@ -187,7 +185,6 @@ SET @@global.max_allowed_packet = @start_global_value;
|
||||
SELECT @@global.max_allowed_packet;
|
||||
@@global.max_allowed_packet
|
||||
1048576
|
||||
SET @@session.max_allowed_packet = @start_session_value;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
@@session.max_allowed_packet
|
||||
1048576
|
||||
|
@ -9,26 +9,17 @@ PRIMARY KEY (id),
|
||||
name BLOB
|
||||
);
|
||||
'#--------------------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.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;
|
||||
@@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;
|
||||
@@session.net_buffer_length
|
||||
1024
|
||||
## 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';
|
||||
16384
|
||||
'#--------------------FN_DYNVARS_070_02-------------------------#'
|
||||
## Setting value of max_allowed packet and net_buffer_length to 1024 ##
|
||||
SET @@global.max_allowed_packet = 1024;
|
||||
|
@ -378,29 +378,6 @@ where 0=1;
|
||||
delete t1, t2 from t2,t1
|
||||
where t1.id1=t2.id2 and 0=1;
|
||||
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 t2 ( a int );
|
||||
DELETE t1 FROM t1, t2 AS t3;
|
||||
|
25
mysql-test/r/multi_update2.result
Normal file
25
mysql-test/r/multi_update2.result
Normal file
@ -0,0 +1,25 @@
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL) ;
|
||||
# The protocolling of many inserts into t1 is suppressed.
|
||||
ALTER TABLE t1 ADD INDEX i1(a);
|
||||
DELETE FROM t1 WHERE a > 2000000;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
INSERT INTO t2 SELECT * FROM t1;
|
||||
SELECT 't2 rows before small delete', COUNT(*) FROM t1;
|
||||
t2 rows before small delete COUNT(*)
|
||||
t2 rows before small delete 2000000
|
||||
DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 2;
|
||||
SELECT 't2 rows after small delete', COUNT(*) FROM t2;
|
||||
t2 rows after small delete COUNT(*)
|
||||
t2 rows after small delete 1999999
|
||||
SELECT 't1 rows after small delete', COUNT(*) FROM t1;
|
||||
t1 rows after small delete COUNT(*)
|
||||
t1 rows after small delete 1999999
|
||||
DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 100*1000;
|
||||
SELECT 't2 rows after big delete', COUNT(*) FROM t2;
|
||||
t2 rows after big delete COUNT(*)
|
||||
t2 rows after big delete 1900001
|
||||
SELECT 't1 rows after big delete', COUNT(*) FROM t1;
|
||||
t1 rows after big delete COUNT(*)
|
||||
t1 rows after big delete 1900001
|
||||
DROP TABLE t1,t2;
|
@ -9,7 +9,7 @@ SET timestamp=1000000000;
|
||||
#
|
||||
# We need big packets.
|
||||
#
|
||||
SET @@session.max_allowed_packet= 1024*1024*1024;
|
||||
SET @@global.max_allowed_packet= 1024*1024*1024;
|
||||
#
|
||||
# Delete all existing binary logs.
|
||||
#
|
||||
|
@ -101,6 +101,19 @@ drop view v_bug25347;
|
||||
drop table t_bug25347;
|
||||
drop database d_bug25347;
|
||||
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
|
||||
create table t1(a int);
|
||||
create view v1 as select * from t1;
|
||||
|
@ -1,5 +1,5 @@
|
||||
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-------------------------#'
|
||||
SET @@global.net_buffer_length = 10000;
|
||||
SET @@global.net_buffer_length = DEFAULT;
|
||||
@ -7,7 +7,9 @@ SELECT @@global.net_buffer_length;
|
||||
@@global.net_buffer_length
|
||||
16384
|
||||
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;
|
||||
ERROR 42000: Variable 'net_buffer_length' doesn't have a default value
|
||||
SELECT @@session.net_buffer_length;
|
||||
@@session.net_buffer_length
|
||||
16384
|
||||
@ -16,10 +18,6 @@ SET @@global.net_buffer_length = DEFAULT;
|
||||
SELECT @@global.net_buffer_length = 16384;
|
||||
@@global.net_buffer_length = 16384
|
||||
1
|
||||
SET @@session.net_buffer_length = DEFAULT;
|
||||
SELECT @@session.net_buffer_length = 16384;
|
||||
@@session.net_buffer_length = 16384
|
||||
1
|
||||
'#--------------------FN_DYNVARS_109_03-------------------------#'
|
||||
SET @@global.net_buffer_length = 1024;
|
||||
SELECT @@global.net_buffer_length;
|
||||
@ -43,27 +41,6 @@ SELECT @@global.net_buffer_length;
|
||||
64512
|
||||
'Bug# 34877: Invalid Values are coming in variable on assigning valid values';
|
||||
'#--------------------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-----------------------#'
|
||||
SET @@global.net_buffer_length = 0;
|
||||
Warnings:
|
||||
@ -105,42 +82,12 @@ ERROR 42000: Incorrect argument type to variable 'net_buffer_length'
|
||||
SELECT @@global.net_buffer_length;
|
||||
@@global.net_buffer_length
|
||||
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';
|
||||
SET @@session.net_buffer_length = test;
|
||||
ERROR 42000: Incorrect argument type to variable 'net_buffer_length'
|
||||
SELECT @@session.net_buffer_length;
|
||||
@@session.net_buffer_length
|
||||
65536
|
||||
16384
|
||||
'#------------------FN_DYNVARS_109_06-----------------------#'
|
||||
SELECT @@global.net_buffer_length = VARIABLE_VALUE
|
||||
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
||||
@ -172,18 +119,10 @@ SELECT @@net_buffer_length = @@global.net_buffer_length;
|
||||
@@net_buffer_length = @@global.net_buffer_length
|
||||
0
|
||||
'#---------------------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----------------------#'
|
||||
SET net_buffer_length = 1024;
|
||||
SELECT @@net_buffer_length;
|
||||
@@net_buffer_length
|
||||
1024
|
||||
16384
|
||||
SELECT local.net_buffer_length;
|
||||
ERROR 42S02: Unknown table 'local' in field list
|
||||
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;
|
||||
ERROR 42S22: Unknown column 'net_buffer_length' in 'field list'
|
||||
SET @@global.net_buffer_length = @start_global_value;
|
||||
SET @@session.net_buffer_length = @start_session_value;
|
||||
|
@ -73,11 +73,10 @@ variable_name LIKE 'SSL_CALLBACK_CACHE_HITS';
|
||||
END$$
|
||||
SELECT variable_name, variable_value FROM thread_status;
|
||||
variable_name variable_value
|
||||
SSL_ACCEPTS 0
|
||||
SSL_CALLBACK_CACHE_HITS 0
|
||||
SSL_ACCEPTS #
|
||||
SSL_CALLBACK_CACHE_HITS #
|
||||
DROP TABLE thread_status;
|
||||
SET GLOBAL event_scheduler=0;
|
||||
End of 5.1 tests
|
||||
SHOW STATUS LIKE 'Ssl_cipher';
|
||||
Variable_name Value
|
||||
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'
|
||||
mysqldump: Got error: 2026: SSL connection error when trying to connect
|
||||
DROP TABLE t1;
|
||||
Variable_name Value
|
||||
Ssl_cipher DHE-RSA-AES256-SHA
|
||||
Variable_name Value
|
||||
Ssl_cipher EDH-RSA-DES-CBC3-SHA
|
||||
Variable_name Value
|
||||
Ssl_cipher EDH-RSA-DES-CBC-SHA
|
||||
Variable_name Value
|
||||
Ssl_cipher RC4-SHA
|
||||
select 'is still running; no cipher request crashed the server' as result from dual;
|
||||
result
|
||||
is still running; no cipher request crashed the server
|
||||
End of 5.1 tests
|
||||
|
@ -1,32 +1,22 @@
|
||||
set global max_allowed_packet=100;
|
||||
Warnings:
|
||||
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;
|
||||
Warnings:
|
||||
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;
|
||||
len
|
||||
1024
|
||||
select repeat('a',2000);
|
||||
repeat('a',2000)
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1301 Result of repeat() was larger than max_allowed_packet (1024) - truncated
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
select @@net_buffer_length, @@max_allowed_packet;
|
||||
@@net_buffer_length @@max_allowed_packet
|
||||
1024 1024
|
||||
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
||||
ERROR 08S01: Got a packet bigger than 'max_allowed_packet' bytes
|
||||
set global max_allowed_packet=default;
|
||||
set max_allowed_packet=default;
|
||||
set global net_buffer_length=default;
|
||||
set net_buffer_length=default;
|
||||
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
||||
len
|
||||
100
|
||||
|
@ -1,5 +1,17 @@
|
||||
SET @old_general_log= @@global.general_log;
|
||||
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))
|
||||
PARTITION BY RANGE(a)
|
||||
(PARTITION p1 VALUES LESS THAN (200), PARTITION pmax VALUES LESS THAN MAXVALUE);
|
||||
|
@ -1,3 +1,25 @@
|
||||
drop table if exists t1;
|
||||
CREATE TABLE t1 (id INT PRIMARY KEY, data INT) ENGINE = InnoDB
|
||||
PARTITION BY RANGE(id) (
|
||||
PARTITION p0 VALUES LESS THAN (5),
|
||||
PARTITION p1 VALUES LESS THAN (10),
|
||||
PARTITION p2 VALUES LESS THAN MAXVALUE
|
||||
);
|
||||
INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4), (5,5), (6,6), (7,7), (8,8),
|
||||
(9,9), (10,10), (11,11);
|
||||
SET @old_tx_isolation := @@session.tx_isolation;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
SET autocommit = 0;
|
||||
UPDATE t1 SET DATA = data*2 WHERE id = 3;
|
||||
SHOW ENGINE InnoDB STATUS;
|
||||
Type Name Status
|
||||
InnoDB 2 lock struct(s) 1 row lock(s)
|
||||
UPDATE t1 SET data = data*2 WHERE data = 2;
|
||||
SHOW ENGINE InnoDB STATUS;
|
||||
Type Name Status
|
||||
InnoDB 6 lock struct(s) 2 row lock(s)
|
||||
SET @@session.tx_isolation = @old_tx_isolation;
|
||||
DROP TABLE t1;
|
||||
# Bug#37721, test of ORDER BY on PK and WHERE on INDEX
|
||||
CREATE TABLE t1 (
|
||||
a INT,
|
||||
|
6
mysql-test/r/perror-win.result
Normal file
6
mysql-test/r/perror-win.result
Normal file
@ -0,0 +1,6 @@
|
||||
MySQL error code 150: Foreign key constraint is incorrectly formed
|
||||
Win32 error code 150: System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed.
|
||||
OS error code 23: Too many open files in system
|
||||
Win32 error code 23: Data error (cyclic redundancy check).
|
||||
Win32 error code 1062: The service has not been started.
|
||||
Illegal error code: 30000
|
@ -100,19 +100,19 @@ drop table t1;
|
||||
show variables like "wait_timeout%";
|
||||
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_VALUE Value 253 20480 5 Y 0 0 8
|
||||
def VARIABLES VARIABLE_VALUE Value 253 1024 5 Y 0 0 8
|
||||
Variable_name Value
|
||||
wait_timeout 28800
|
||||
show variables like "WAIT_timeout%";
|
||||
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_VALUE Value 253 20480 5 Y 0 0 8
|
||||
def VARIABLES VARIABLE_VALUE Value 253 1024 5 Y 0 0 8
|
||||
Variable_name Value
|
||||
wait_timeout 28800
|
||||
show variables like "this_doesn't_exists%";
|
||||
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_VALUE Value 253 20480 0 Y 0 0 8
|
||||
def VARIABLES VARIABLE_VALUE Value 253 1024 0 Y 0 0 8
|
||||
Variable_name Value
|
||||
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
|
||||
@ -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 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 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 CREATE_OPTIONS Create_options 253 255 0 Y 0 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';
|
||||
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 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
|
||||
Charset Description Default collation Maxlen
|
||||
utf8 UTF-8 Unicode utf8_general_ci 3
|
||||
----------------------------------------------------------------
|
||||
SHOW COLLATION LIKE 'latin1_bin';
|
||||
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 CHARACTER_SET_NAME Charset 253 192 6 N 1 0 33
|
||||
def COLLATIONS COLLATION_NAME Collation 253 96 10 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 IS_DEFAULT Default 253 9 0 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 ENGINE ENGINE 253 192 6 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 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
|
||||
@ -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 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 CHARACTER_SET_NAME CHARACTER_SET_NAME 253 192 0 Y 0 0 33
|
||||
def COLUMNS COLLATION_NAME COLLATION_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 96 0 Y 0 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 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_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 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 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
|
||||
@ -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_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 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 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
|
||||
|
@ -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
|
||||
1 1
|
||||
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.
|
||||
|
@ -148,16 +148,16 @@ DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
CREATE TABLE t1(a INT)
|
||||
INDEX DIRECTORY='MYSQLD_DATADIR/mysql';
|
||||
ERROR HY000: Incorrect arguments to INDEX DIRECTORY
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a INT)
|
||||
DATA DIRECTORY='MYSQLD_DATADIR/test';
|
||||
ERROR HY000: Incorrect arguments to DATA DIRECTORY
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a INT)
|
||||
DATA DIRECTORY='MYSQLD_DATADIR/';
|
||||
ERROR HY000: Incorrect arguments to DATA DIRECTORY
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a INT)
|
||||
INDEX DIRECTORY='MYSQLD_DATADIR';
|
||||
ERROR HY000: Incorrect arguments to INDEX DIRECTORY
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a INT)
|
||||
INDEX DIRECTORY='TEST_DIR/master-data_var';
|
||||
ERROR HY000: Can't create/write to file 'TEST_DIR/master-data_var/t1.MYI' (Errcode: 2)
|
||||
|
@ -1,33 +1,25 @@
|
||||
** Setup **
|
||||
|
||||
** Connecting con0 using root **
|
||||
** Connecting con1 using root **
|
||||
'#-----------------------------FN_DYNVARS_179_01------------------#'
|
||||
** Connection con0 **
|
||||
SET @ts_old = @@SESSION.timestamp;
|
||||
waiting 1 sec
|
||||
SET @ts_new = @@SESSION.timestamp;
|
||||
SELECT @ts_new - @ts_old >= 1 AS 'Timestamp Difference';
|
||||
Timestamp Difference
|
||||
SELECT date(now()) = date(sysdate());
|
||||
date(now()) = date(sysdate())
|
||||
1
|
||||
SET @@session.timestamp = 1100000000;
|
||||
SELECT date(now()) != date(sysdate());
|
||||
date(now()) != date(sysdate())
|
||||
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 means >=1 expected is true
|
||||
** Connection con1 **
|
||||
SET @ts_old = @@SESSION.timestamp;
|
||||
waiting 4 sec
|
||||
SET @ts_new = @@SESSION.timestamp;
|
||||
SELECT @ts_new - @ts_old >= 4 AS 'Timestamp Difference';
|
||||
Timestamp Difference
|
||||
SELECT @@session.timestamp != 1000000000;
|
||||
@@session.timestamp != 1000000000
|
||||
1
|
||||
1 means >=4 expected is true
|
||||
'#-----------------------------FN_DYNVARS_179_02---------------------#'
|
||||
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
|
||||
SELECT @@session.timestamp = 1100000000;
|
||||
@@session.timestamp = 1100000000
|
||||
1
|
||||
1 means >=1 expected is true
|
||||
** Cleanup **
|
||||
** Connection default **
|
||||
Disconnecting Connections con0, con1
|
||||
|
25
mysql-test/r/timestamp_sysdate_is_now_func.result
Normal file
25
mysql-test/r/timestamp_sysdate_is_now_func.result
Normal file
@ -0,0 +1,25 @@
|
||||
** Connecting con1 using root **
|
||||
SELECT date(now()) = date(sysdate());
|
||||
date(now()) = date(sysdate())
|
||||
1
|
||||
SET @@session.timestamp = 1100000000;
|
||||
SELECT date(now()) != date(sysdate());
|
||||
date(now()) != date(sysdate())
|
||||
0
|
||||
** Connecting con0 using root **
|
||||
SELECT @@session.timestamp != 1100000000;
|
||||
@@session.timestamp != 1100000000
|
||||
1
|
||||
SET @@session.timestamp = 1000000000;
|
||||
SELECT date(now()) != date(sysdate());
|
||||
date(now()) != date(sysdate())
|
||||
0
|
||||
** Connection con1 **
|
||||
SELECT @@session.timestamp != 1000000000;
|
||||
@@session.timestamp != 1000000000
|
||||
1
|
||||
SELECT @@session.timestamp = 1100000000;
|
||||
@@session.timestamp = 1100000000
|
||||
1
|
||||
** Connection default **
|
||||
Disconnecting Connections con0, con1
|
@ -110,7 +110,7 @@ i ts
|
||||
362793610 1981-07-01 04:00:00
|
||||
select from_unixtime(362793609);
|
||||
from_unixtime(362793609)
|
||||
1981-07-01 03:59:60
|
||||
1981-07-01 03:59:59
|
||||
drop table t1;
|
||||
create table t1 (ts timestamp);
|
||||
set time_zone='UTC';
|
||||
|
@ -17,6 +17,9 @@ 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 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;
|
||||
i from_unixtime(i) c
|
||||
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
|
||||
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
|
||||
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;
|
||||
create table t1 (ts timestamp);
|
||||
insert into t1 values (19730101235900), (20040101235900);
|
||||
@ -39,3 +44,6 @@ ts
|
||||
1973-01-01 23:59:00
|
||||
2004-01-01 23:59:00
|
||||
drop table t1;
|
||||
SELECT FROM_UNIXTIME(1230768022), FROM_UNIXTIME(1230768023), FROM_UNIXTIME(1230768024);
|
||||
FROM_UNIXTIME(1230768022) FROM_UNIXTIME(1230768023) FROM_UNIXTIME(1230768024)
|
||||
2009-01-01 02:59:59 2009-01-01 02:59:59 2009-01-01 03:00:00
|
||||
|
@ -1534,6 +1534,21 @@ select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
|
||||
(1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
|
||||
1.01500000 * 1.01500000 * 0.99500000)
|
||||
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
|
||||
select cast(143.481 as decimal(4,1));
|
||||
cast(143.481 as decimal(4,1))
|
||||
|
@ -1343,10 +1343,10 @@ t3 CREATE TABLE `t3` (
|
||||
`left(a,100000000)` longtext
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop tables t1,t2,t3;
|
||||
SELECT @tmp_max:= @@max_allowed_packet;
|
||||
@tmp_max:= @@max_allowed_packet
|
||||
SELECT @tmp_max:= @@global.max_allowed_packet;
|
||||
@tmp_max:= @@global.max_allowed_packet
|
||||
1048576
|
||||
SET max_allowed_packet=25000000;
|
||||
SET @@global.max_allowed_packet=25000000;
|
||||
CREATE TABLE t1 (a mediumtext);
|
||||
CREATE TABLE t2 (b varchar(20));
|
||||
INSERT INTO t1 VALUES ('a');
|
||||
@ -1384,7 +1384,7 @@ t3 CREATE TABLE `t3` (
|
||||
`a` varbinary(510) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
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);
|
||||
insert into t1 (col1) values (2),(3),(4),(5),(6);
|
||||
select 99 union all select id from t1 order by 1;
|
||||
|
@ -491,4 +491,15 @@ update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
|
||||
affected rows: 127
|
||||
info: Rows matched: 128 Changed: 127 Warnings: 0
|
||||
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
|
||||
|
@ -16,3 +16,95 @@ slave_skip_errors 3,100,137,643,1752
|
||||
set global slave_net_timeout=default;
|
||||
set global sql_slave_skip_counter= 0;
|
||||
set @@global.slave_net_timeout= @my_slave_net_timeout;
|
||||
|
||||
#
|
||||
SHOW VARIABLES like 'log_slave_updates';
|
||||
Variable_name Value
|
||||
log_slave_updates OFF
|
||||
SELECT @@session.log_slave_updates;
|
||||
ERROR HY000: Variable 'log_slave_updates' is a GLOBAL variable
|
||||
SELECT @@global.log_slave_updates;
|
||||
@@global.log_slave_updates
|
||||
0
|
||||
SET @@session.log_slave_updates= true;
|
||||
ERROR HY000: Variable 'log_slave_updates' is a read only variable
|
||||
SET @@global.log_slave_updates= true;
|
||||
ERROR HY000: Variable 'log_slave_updates' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'relay_log';
|
||||
Variable_name Value
|
||||
relay_log
|
||||
SELECT @@session.relay_log;
|
||||
ERROR HY000: Variable 'relay_log' is a GLOBAL variable
|
||||
SELECT @@global.relay_log;
|
||||
@@global.relay_log
|
||||
NULL
|
||||
SET @@session.relay_log= 'x';
|
||||
ERROR HY000: Variable 'relay_log' is a read only variable
|
||||
SET @@global.relay_log= 'x';
|
||||
ERROR HY000: Variable 'relay_log' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'relay_log_index';
|
||||
Variable_name Value
|
||||
relay_log_index
|
||||
SELECT @@session.relay_log_index;
|
||||
ERROR HY000: Variable 'relay_log_index' is a GLOBAL variable
|
||||
SELECT @@global.relay_log_index;
|
||||
@@global.relay_log_index
|
||||
NULL
|
||||
SET @@session.relay_log_index= 'x';
|
||||
ERROR HY000: Variable 'relay_log_index' is a read only variable
|
||||
SET @@global.relay_log_index= 'x';
|
||||
ERROR HY000: Variable 'relay_log_index' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'relay_log_info_file';
|
||||
Variable_name Value
|
||||
relay_log_info_file relay-log.info
|
||||
SELECT @@session.relay_log_info_file;
|
||||
ERROR HY000: Variable 'relay_log_info_file' is a GLOBAL variable
|
||||
SELECT @@global.relay_log_info_file;
|
||||
@@global.relay_log_info_file
|
||||
relay-log.info
|
||||
SET @@session.relay_log_info_file= 'x';
|
||||
ERROR HY000: Variable 'relay_log_info_file' is a read only variable
|
||||
SET @@global.relay_log_info_file= 'x';
|
||||
ERROR HY000: Variable 'relay_log_info_file' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'relay_log_space_limit';
|
||||
Variable_name Value
|
||||
relay_log_space_limit 0
|
||||
SELECT @@session.relay_log_space_limit;
|
||||
ERROR HY000: Variable 'relay_log_space_limit' is a GLOBAL variable
|
||||
SELECT @@global.relay_log_space_limit;
|
||||
@@global.relay_log_space_limit
|
||||
0
|
||||
SET @@session.relay_log_space_limit= 7;
|
||||
ERROR HY000: Variable 'relay_log_space_limit' is a read only variable
|
||||
SET @@global.relay_log_space_limit= 7;
|
||||
ERROR HY000: Variable 'relay_log_space_limit' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'slave_load_tmpdir';
|
||||
Variable_name Value
|
||||
slave_load_tmpdir #
|
||||
SELECT @@session.slave_load_tmpdir;
|
||||
ERROR HY000: Variable 'slave_load_tmpdir' is a GLOBAL variable
|
||||
SELECT @@global.slave_load_tmpdir;
|
||||
@@global.slave_load_tmpdir
|
||||
#
|
||||
SET @@session.slave_load_tmpdir= 'x';
|
||||
ERROR HY000: Variable 'slave_load_tmpdir' is a read only variable
|
||||
SET @@global.slave_load_tmpdir= 'x';
|
||||
ERROR HY000: Variable 'slave_load_tmpdir' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'slave_skip_errors';
|
||||
Variable_name Value
|
||||
slave_skip_errors 3,100,137,643,1752
|
||||
SELECT @@session.slave_skip_errors;
|
||||
ERROR HY000: Variable 'slave_skip_errors' is a GLOBAL variable
|
||||
SELECT @@global.slave_skip_errors;
|
||||
@@global.slave_skip_errors
|
||||
3,100,137,643,1752
|
||||
SET @@session.slave_skip_errors= 7;
|
||||
ERROR HY000: Variable 'slave_skip_errors' is a read only variable
|
||||
SET @@global.slave_skip_errors= 7;
|
||||
ERROR HY000: Variable 'slave_skip_errors' is a read only variable
|
||||
|
@ -229,7 +229,6 @@ VARIABLE_NAME VARIABLE_VALUE
|
||||
MYISAM_MAX_SORT_FILE_SIZE FILE_SIZE
|
||||
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 session net_buffer_length=2048, net_write_timeout=500, net_read_timeout=600;
|
||||
show global variables like 'net_%';
|
||||
Variable_name Value
|
||||
net_buffer_length 1024
|
||||
@ -244,57 +243,45 @@ NET_RETRY_COUNT 10
|
||||
NET_WRITE_TIMEOUT 200
|
||||
show session variables like 'net_%';
|
||||
Variable_name Value
|
||||
net_buffer_length 2048
|
||||
net_read_timeout 600
|
||||
net_buffer_length 16384
|
||||
net_read_timeout 30
|
||||
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;
|
||||
VARIABLE_NAME VARIABLE_VALUE
|
||||
NET_BUFFER_LENGTH 2048
|
||||
NET_READ_TIMEOUT 600
|
||||
NET_BUFFER_LENGTH 16384
|
||||
NET_READ_TIMEOUT 30
|
||||
NET_RETRY_COUNT 10
|
||||
NET_WRITE_TIMEOUT 500
|
||||
set session net_buffer_length=8000, global net_read_timeout=900, net_write_timeout=1000;
|
||||
NET_WRITE_TIMEOUT 60
|
||||
set global net_buffer_length=8000, global net_read_timeout=900, net_write_timeout=1000;
|
||||
show global variables like 'net_%';
|
||||
Variable_name Value
|
||||
net_buffer_length 1024
|
||||
net_buffer_length 7168
|
||||
net_read_timeout 900
|
||||
net_retry_count 10
|
||||
net_write_timeout 1000
|
||||
select * from information_schema.global_variables where variable_name like 'net_%' order by 1;
|
||||
VARIABLE_NAME VARIABLE_VALUE
|
||||
NET_BUFFER_LENGTH 1024
|
||||
NET_BUFFER_LENGTH 7168
|
||||
NET_READ_TIMEOUT 900
|
||||
NET_RETRY_COUNT 10
|
||||
NET_WRITE_TIMEOUT 1000
|
||||
show session variables like 'net_%';
|
||||
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;
|
||||
set global net_buffer_length=1;
|
||||
Warnings:
|
||||
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
|
||||
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
|
||||
NET_BUFFER_LENGTH 1024
|
||||
set net_buffer_length=2000000000;
|
||||
set global net_buffer_length=2000000000;
|
||||
Warnings:
|
||||
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
|
||||
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
|
||||
NET_BUFFER_LENGTH 1048576
|
||||
set character set cp1251_koi8;
|
||||
@ -462,7 +449,7 @@ select @@long_query_time;
|
||||
@@long_query_time
|
||||
100.000001
|
||||
set low_priority_updates=1;
|
||||
set max_allowed_packet=100;
|
||||
set global max_allowed_packet=100;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect max_allowed_packet value: '100'
|
||||
set global max_binlog_cache_size=100;
|
||||
@ -486,7 +473,7 @@ select @@max_user_connections;
|
||||
100
|
||||
set global max_write_lock_count=100;
|
||||
set myisam_sort_buffer_size=100;
|
||||
set net_buffer_length=100;
|
||||
set global net_buffer_length=100;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect net_buffer_length value: '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'
|
||||
|
||||
# -- End of Bug#34820.
|
||||
|
||||
#
|
||||
SHOW VARIABLES like 'ft_max_word_len';
|
||||
Variable_name Value
|
||||
ft_max_word_len 84
|
||||
SELECT @@session.ft_max_word_len;
|
||||
ERROR HY000: Variable 'ft_max_word_len' is a GLOBAL variable
|
||||
SELECT @@global.ft_max_word_len;
|
||||
@@global.ft_max_word_len
|
||||
84
|
||||
SET @@session.ft_max_word_len= 7;
|
||||
ERROR HY000: Variable 'ft_max_word_len' is a read only variable
|
||||
SET @@global.ft_max_word_len= 7;
|
||||
ERROR HY000: Variable 'ft_max_word_len' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'ft_min_word_len';
|
||||
Variable_name Value
|
||||
ft_min_word_len 4
|
||||
SELECT @@session.ft_min_word_len;
|
||||
ERROR HY000: Variable 'ft_min_word_len' is a GLOBAL variable
|
||||
SELECT @@global.ft_min_word_len;
|
||||
@@global.ft_min_word_len
|
||||
4
|
||||
SET @@session.ft_min_word_len= 7;
|
||||
ERROR HY000: Variable 'ft_min_word_len' is a read only variable
|
||||
SET @@global.ft_min_word_len= 7;
|
||||
ERROR HY000: Variable 'ft_min_word_len' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'ft_query_expansion_limit';
|
||||
Variable_name Value
|
||||
ft_query_expansion_limit 20
|
||||
SELECT @@session.ft_query_expansion_limit;
|
||||
ERROR HY000: Variable 'ft_query_expansion_limit' is a GLOBAL variable
|
||||
SELECT @@global.ft_query_expansion_limit;
|
||||
@@global.ft_query_expansion_limit
|
||||
20
|
||||
SET @@session.ft_query_expansion_limit= 7;
|
||||
ERROR HY000: Variable 'ft_query_expansion_limit' is a read only variable
|
||||
SET @@global.ft_query_expansion_limit= 7;
|
||||
ERROR HY000: Variable 'ft_query_expansion_limit' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'ft_stopword_file';
|
||||
Variable_name Value
|
||||
ft_stopword_file (built-in)
|
||||
SELECT @@session.ft_stopword_file;
|
||||
ERROR HY000: Variable 'ft_stopword_file' is a GLOBAL variable
|
||||
SELECT @@global.ft_stopword_file;
|
||||
@@global.ft_stopword_file
|
||||
(built-in)
|
||||
SET @@session.ft_stopword_file= 'x';
|
||||
ERROR HY000: Variable 'ft_stopword_file' is a read only variable
|
||||
SET @@global.ft_stopword_file= 'x';
|
||||
ERROR HY000: Variable 'ft_stopword_file' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'back_log';
|
||||
Variable_name Value
|
||||
back_log 50
|
||||
SELECT @@session.back_log;
|
||||
ERROR HY000: Variable 'back_log' is a GLOBAL variable
|
||||
SELECT @@global.back_log;
|
||||
@@global.back_log
|
||||
50
|
||||
SET @@session.back_log= 7;
|
||||
ERROR HY000: Variable 'back_log' is a read only variable
|
||||
SET @@global.back_log= 7;
|
||||
ERROR HY000: Variable 'back_log' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'large_files_support';
|
||||
Variable_name Value
|
||||
large_files_support #
|
||||
SELECT @@session.large_files_support;
|
||||
ERROR HY000: Variable 'large_files_support' is a GLOBAL variable
|
||||
SELECT @@global.large_files_support;
|
||||
@@global.large_files_support
|
||||
#
|
||||
SET @@session.large_files_support= true;
|
||||
ERROR HY000: Variable 'large_files_support' is a read only variable
|
||||
SET @@global.large_files_support= true;
|
||||
ERROR HY000: Variable 'large_files_support' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'character_sets_dir';
|
||||
Variable_name Value
|
||||
character_sets_dir #
|
||||
SELECT @@session.character_sets_dir;
|
||||
ERROR HY000: Variable 'character_sets_dir' is a GLOBAL variable
|
||||
SELECT @@global.character_sets_dir;
|
||||
@@global.character_sets_dir
|
||||
#
|
||||
SET @@session.character_sets_dir= 'x';
|
||||
ERROR HY000: Variable 'character_sets_dir' is a read only variable
|
||||
SET @@global.character_sets_dir= 'x';
|
||||
ERROR HY000: Variable 'character_sets_dir' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'init_file';
|
||||
Variable_name Value
|
||||
init_file #
|
||||
SELECT @@session.init_file;
|
||||
ERROR HY000: Variable 'init_file' is a GLOBAL variable
|
||||
SELECT @@global.init_file;
|
||||
@@global.init_file
|
||||
#
|
||||
SET @@session.init_file= 'x';
|
||||
ERROR HY000: Variable 'init_file' is a read only variable
|
||||
SET @@global.init_file= 'x';
|
||||
ERROR HY000: Variable 'init_file' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'language';
|
||||
Variable_name Value
|
||||
language #
|
||||
SELECT @@session.language;
|
||||
ERROR HY000: Variable 'language' is a GLOBAL variable
|
||||
SELECT @@global.language;
|
||||
@@global.language
|
||||
#
|
||||
SET @@session.language= 'x';
|
||||
ERROR HY000: Variable 'language' is a read only variable
|
||||
SET @@global.language= 'x';
|
||||
ERROR HY000: Variable 'language' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'large_page_size';
|
||||
Variable_name Value
|
||||
large_page_size #
|
||||
SELECT @@session.large_page_size;
|
||||
ERROR HY000: Variable 'large_page_size' is a GLOBAL variable
|
||||
SELECT @@global.large_page_size;
|
||||
@@global.large_page_size
|
||||
#
|
||||
SET @@session.large_page_size= 7;
|
||||
ERROR HY000: Variable 'large_page_size' is a read only variable
|
||||
SET @@global.large_page_size= 7;
|
||||
ERROR HY000: Variable 'large_page_size' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'large_pages';
|
||||
Variable_name Value
|
||||
large_pages #
|
||||
SELECT @@session.large_pages;
|
||||
ERROR HY000: Variable 'large_pages' is a GLOBAL variable
|
||||
SELECT @@global.large_pages;
|
||||
@@global.large_pages
|
||||
#
|
||||
SET @@session.large_pages= true;
|
||||
ERROR HY000: Variable 'large_pages' is a read only variable
|
||||
SET @@global.large_pages= true;
|
||||
ERROR HY000: Variable 'large_pages' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'log_bin';
|
||||
Variable_name Value
|
||||
log_bin OFF
|
||||
SELECT @@session.log_bin;
|
||||
ERROR HY000: Variable 'log_bin' is a GLOBAL variable
|
||||
SELECT @@global.log_bin;
|
||||
@@global.log_bin
|
||||
0
|
||||
SET @@session.log_bin= true;
|
||||
ERROR HY000: Variable 'log_bin' is a read only variable
|
||||
SET @@global.log_bin= true;
|
||||
ERROR HY000: Variable 'log_bin' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'log_error';
|
||||
Variable_name Value
|
||||
log_error #
|
||||
SELECT @@session.log_error;
|
||||
ERROR HY000: Variable 'log_error' is a GLOBAL variable
|
||||
SELECT @@global.log_error;
|
||||
@@global.log_error
|
||||
#
|
||||
SET @@session.log_error= 'x';
|
||||
ERROR HY000: Variable 'log_error' is a read only variable
|
||||
SET @@global.log_error= 'x';
|
||||
ERROR HY000: Variable 'log_error' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'lower_case_file_system';
|
||||
Variable_name Value
|
||||
lower_case_file_system #
|
||||
SELECT @@session.lower_case_file_system;
|
||||
ERROR HY000: Variable 'lower_case_file_system' is a GLOBAL variable
|
||||
SELECT @@global.lower_case_file_system;
|
||||
@@global.lower_case_file_system
|
||||
#
|
||||
SET @@session.lower_case_file_system= true;
|
||||
ERROR HY000: Variable 'lower_case_file_system' is a read only variable
|
||||
SET @@global.lower_case_file_system= true;
|
||||
ERROR HY000: Variable 'lower_case_file_system' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'lower_case_table_names';
|
||||
Variable_name Value
|
||||
lower_case_table_names #
|
||||
SELECT @@session.lower_case_table_names;
|
||||
ERROR HY000: Variable 'lower_case_table_names' is a GLOBAL variable
|
||||
SELECT @@global.lower_case_table_names;
|
||||
@@global.lower_case_table_names
|
||||
#
|
||||
SET @@session.lower_case_table_names= 7;
|
||||
ERROR HY000: Variable 'lower_case_table_names' is a read only variable
|
||||
SET @@global.lower_case_table_names= 7;
|
||||
ERROR HY000: Variable 'lower_case_table_names' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'myisam_recover_options';
|
||||
Variable_name Value
|
||||
myisam_recover_options OFF
|
||||
SELECT @@session.myisam_recover_options;
|
||||
ERROR HY000: Variable 'myisam_recover_options' is a GLOBAL variable
|
||||
SELECT @@global.myisam_recover_options;
|
||||
@@global.myisam_recover_options
|
||||
OFF
|
||||
SET @@session.myisam_recover_options= 'x';
|
||||
ERROR HY000: Variable 'myisam_recover_options' is a read only variable
|
||||
SET @@global.myisam_recover_options= 'x';
|
||||
ERROR HY000: Variable 'myisam_recover_options' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'open_files_limit';
|
||||
Variable_name Value
|
||||
open_files_limit #
|
||||
SELECT @@session.open_files_limit;
|
||||
ERROR HY000: Variable 'open_files_limit' is a GLOBAL variable
|
||||
SELECT @@global.open_files_limit;
|
||||
@@global.open_files_limit
|
||||
#
|
||||
SET @@session.open_files_limit= 7;
|
||||
ERROR HY000: Variable 'open_files_limit' is a read only variable
|
||||
SET @@global.open_files_limit= 7;
|
||||
ERROR HY000: Variable 'open_files_limit' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'pid_file';
|
||||
Variable_name Value
|
||||
pid_file #
|
||||
SELECT @@session.pid_file;
|
||||
ERROR HY000: Variable 'pid_file' is a GLOBAL variable
|
||||
SELECT @@global.pid_file;
|
||||
@@global.pid_file
|
||||
#
|
||||
SET @@session.pid_file= 'x';
|
||||
ERROR HY000: Variable 'pid_file' is a read only variable
|
||||
SET @@global.pid_file= 'x';
|
||||
ERROR HY000: Variable 'pid_file' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'plugin_dir';
|
||||
Variable_name Value
|
||||
plugin_dir #
|
||||
SELECT @@session.plugin_dir;
|
||||
ERROR HY000: Variable 'plugin_dir' is a GLOBAL variable
|
||||
SELECT @@global.plugin_dir;
|
||||
@@global.plugin_dir
|
||||
#
|
||||
SET @@session.plugin_dir= 'x';
|
||||
ERROR HY000: Variable 'plugin_dir' is a read only variable
|
||||
SET @@global.plugin_dir= 'x';
|
||||
ERROR HY000: Variable 'plugin_dir' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'port';
|
||||
Variable_name Value
|
||||
port #
|
||||
SELECT @@session.port;
|
||||
ERROR HY000: Variable 'port' is a GLOBAL variable
|
||||
SELECT @@global.port;
|
||||
@@global.port
|
||||
#
|
||||
SET @@session.port= 7;
|
||||
ERROR HY000: Variable 'port' is a read only variable
|
||||
SET @@global.port= 7;
|
||||
ERROR HY000: Variable 'port' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'protocol_version';
|
||||
Variable_name Value
|
||||
protocol_version 10
|
||||
SELECT @@session.protocol_version;
|
||||
ERROR HY000: Variable 'protocol_version' is a GLOBAL variable
|
||||
SELECT @@global.protocol_version;
|
||||
@@global.protocol_version
|
||||
10
|
||||
SET @@session.protocol_version= 7;
|
||||
ERROR HY000: Variable 'protocol_version' is a read only variable
|
||||
SET @@global.protocol_version= 7;
|
||||
ERROR HY000: Variable 'protocol_version' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'skip_external_locking';
|
||||
Variable_name Value
|
||||
skip_external_locking ON
|
||||
SELECT @@session.skip_external_locking;
|
||||
ERROR HY000: Variable 'skip_external_locking' is a GLOBAL variable
|
||||
SELECT @@global.skip_external_locking;
|
||||
@@global.skip_external_locking
|
||||
1
|
||||
SET @@session.skip_external_locking= true;
|
||||
ERROR HY000: Variable 'skip_external_locking' is a read only variable
|
||||
SET @@global.skip_external_locking= true;
|
||||
ERROR HY000: Variable 'skip_external_locking' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'skip_networking';
|
||||
Variable_name Value
|
||||
skip_networking OFF
|
||||
SELECT @@session.skip_networking;
|
||||
ERROR HY000: Variable 'skip_networking' is a GLOBAL variable
|
||||
SELECT @@global.skip_networking;
|
||||
@@global.skip_networking
|
||||
0
|
||||
SET @@session.skip_networking= true;
|
||||
ERROR HY000: Variable 'skip_networking' is a read only variable
|
||||
SET @@global.skip_networking= true;
|
||||
ERROR HY000: Variable 'skip_networking' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'skip_show_database';
|
||||
Variable_name Value
|
||||
skip_show_database OFF
|
||||
SELECT @@session.skip_show_database;
|
||||
ERROR HY000: Variable 'skip_show_database' is a GLOBAL variable
|
||||
SELECT @@global.skip_show_database;
|
||||
@@global.skip_show_database
|
||||
0
|
||||
SET @@session.skip_show_database= true;
|
||||
ERROR HY000: Variable 'skip_show_database' is a read only variable
|
||||
SET @@global.skip_show_database= true;
|
||||
ERROR HY000: Variable 'skip_show_database' is a read only variable
|
||||
#
|
||||
SHOW VARIABLES like 'thread_stack';
|
||||
Variable_name Value
|
||||
thread_stack #
|
||||
SELECT @@session.thread_stack;
|
||||
ERROR HY000: Variable 'thread_stack' is a GLOBAL variable
|
||||
SELECT @@global.thread_stack;
|
||||
@@global.thread_stack
|
||||
#
|
||||
SET @@session.thread_stack= 7;
|
||||
ERROR HY000: Variable 'thread_stack' is a read only variable
|
||||
SET @@global.thread_stack= 7;
|
||||
ERROR HY000: Variable 'thread_stack' is a read only variable
|
||||
|
@ -625,7 +625,7 @@ drop table t1;
|
||||
create table t1 (a int, b int);
|
||||
create view v1 as select a, sum(b) from t1 group by a;
|
||||
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 table t1;
|
||||
create table t1 (col1 char(5),col2 char(5));
|
||||
@ -3562,11 +3562,11 @@ CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||
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);
|
||||
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);
|
||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
||||
ERROR 42000: Key 'non_existant' doesn't exist in table 'v1'
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
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;
|
||||
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.
|
||||
# -----------------------------------------------------------------
|
||||
|
@ -1,33 +1,32 @@
|
||||
drop table if exists t1;
|
||||
## 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;
|
||||
SET @start_value= @@global.wait_timeout;
|
||||
'#--------------------FN_DYNVARS_186_01-------------------------#'
|
||||
## Creating new connection test_con1 ##
|
||||
## Setting value of variable to 5 ##
|
||||
SET @@session.wait_timeout = 5;
|
||||
## Inserting record in table t1 ##
|
||||
INSERT into t1(name) values('Record_1');
|
||||
## Using sleep to check timeout ##
|
||||
'#--------------------FN_DYNVARS_186_02-------------------------#'
|
||||
## Setting value of variable ##
|
||||
SET @@global.wait_timeout = 5;
|
||||
## Creating new connection test_con2 ##
|
||||
INSERT into t1(name) values('Record_2');
|
||||
## Using sleep to check timeout ##
|
||||
SET @start_time= UNIX_TIMESTAMP();
|
||||
connect (test_con1, localhost, root,,);
|
||||
SELECT @@session.wait_timeout = @@global.wait_timeout AS 'Expect 1';
|
||||
Expect 1
|
||||
1
|
||||
SET @@session.wait_timeout = <session_value>;
|
||||
connect (test_con2, localhost, root,,);
|
||||
SET @@session.wait_timeout = <session_value> - 1;
|
||||
connection default;
|
||||
wait until connections ready
|
||||
SELECT info FROM information_schema.processlist;
|
||||
info
|
||||
SELECT info FROM information_schema.processlist
|
||||
'#--------------------FN_DYNVARS_186_03-------------------------#'
|
||||
## Setting value of variable to 1 ##
|
||||
SET @@global.wait_timeout = 1;
|
||||
## Creating new connection ##
|
||||
INSERT into t1(name) values('Record_3');
|
||||
## Using sleep to check timeout ##
|
||||
## We cannot test it further because the server closes the connection due to wait_timeout ##
|
||||
SELECT * from t1;
|
||||
ERROR HY000: MySQL server has gone away
|
||||
DROP TABLE t1;
|
||||
SET @@global.wait_timeout = @old_wait_timeout;
|
||||
SET @@global.wait_timeout= <global_value>;
|
||||
SELECT @@session.wait_timeout = @start_value AS 'Expect 1';
|
||||
Expect 1
|
||||
1
|
||||
connect (test_con3, localhost, root,,);
|
||||
SELECT @@session.wait_timeout = @@global.wait_timeout AS 'Expect 1';
|
||||
Expect 1
|
||||
1
|
||||
connection default;
|
||||
SELECT info FROM information_schema.processlist;
|
||||
info
|
||||
SELECT info FROM information_schema.processlist
|
||||
SELECT UNIX_TIMESTAMP() - @start_time >= <global_value> + <session_value>;;
|
||||
UNIX_TIMESTAMP() - @start_time >= <global_value> + <session_value>;
|
||||
1
|
||||
SET @@global.wait_timeout= @start_value;
|
||||
|
Binary file not shown.
@ -2123,6 +2123,15 @@ Table Checksum
|
||||
test.t1 2465757603
|
||||
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
|
||||
create server 's1' foreign data wrapper 'mysql' options (port 3306);
|
||||
drop server 's1';
|
||||
|
@ -1923,6 +1923,25 @@ DROP TABLE t1;
|
||||
connection master;
|
||||
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;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
@ -1,5 +1,10 @@
|
||||
source federated.inc;
|
||||
# NOTE: Keep any include/ files that will kill / skip a test BEFORE any others
|
||||
# having federated.inc before have_innodb.inc allows for an orphaned database
|
||||
# that can cause other tests to fail.
|
||||
# See Bug #40645 Test main.federated_innodb does not always clean up after itself
|
||||
|
||||
source include/have_innodb.inc;
|
||||
source federated.inc;
|
||||
|
||||
#
|
||||
# Bug#25513 Federated transaction failures
|
||||
|
@ -346,6 +346,7 @@ WHERE table_name = 't1_my_tablex';
|
||||
# Enforce a time difference bigger than the smallest unit (1 second).
|
||||
--real_sleep 1.1
|
||||
INSERT INTO db_datadict.t1_my_tablex SET f1 = 3;
|
||||
FLUSH TABLES;
|
||||
SELECT UPDATE_TIME > @UPDATE_TIME
|
||||
AS "Is current UPDATE_TIME bigger than before last INSERT?"
|
||||
FROM information_schema.tables
|
||||
|
@ -28,22 +28,22 @@ DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.CHARACTER_SETS;
|
||||
Field Type Null Key Default Extra
|
||||
CHARACTER_SET_NAME varchar(64) NO
|
||||
DEFAULT_COLLATE_NAME varchar(64) NO
|
||||
CHARACTER_SET_NAME varchar(32) NO
|
||||
DEFAULT_COLLATE_NAME varchar(32) NO
|
||||
DESCRIPTION varchar(60) NO
|
||||
MAXLEN bigint(3) NO 0
|
||||
SHOW CREATE TABLE information_schema.CHARACTER_SETS;
|
||||
Table Create Table
|
||||
CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
|
||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATE_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
||||
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||
SHOW COLUMNS FROM information_schema.CHARACTER_SETS;
|
||||
Field Type Null Key Default Extra
|
||||
CHARACTER_SET_NAME varchar(64) NO
|
||||
DEFAULT_COLLATE_NAME varchar(64) NO
|
||||
CHARACTER_SET_NAME varchar(32) NO
|
||||
DEFAULT_COLLATE_NAME varchar(32) NO
|
||||
DESCRIPTION varchar(60) NO
|
||||
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
|
||||
|
@ -28,18 +28,18 @@ DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
||||
Field Type Null Key Default Extra
|
||||
COLLATION_NAME varchar(64) NO
|
||||
CHARACTER_SET_NAME varchar(64) NO
|
||||
COLLATION_NAME varchar(32) NO
|
||||
CHARACTER_SET_NAME varchar(32) NO
|
||||
SHOW CREATE TABLE information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
||||
Table Create Table
|
||||
COLLATION_CHARACTER_SET_APPLICABILITY CREATE TEMPORARY TABLE `COLLATION_CHARACTER_SET_APPLICABILITY` (
|
||||
`COLLATION_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT ''
|
||||
`COLLATION_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT ''
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||
SHOW COLUMNS FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
||||
Field Type Null Key Default Extra
|
||||
COLLATION_NAME varchar(64) NO
|
||||
CHARACTER_SET_NAME varchar(64) NO
|
||||
COLLATION_NAME varchar(32) 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.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
|
@ -28,8 +28,8 @@ DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.COLLATIONS;
|
||||
Field Type Null Key Default Extra
|
||||
COLLATION_NAME varchar(64) NO
|
||||
CHARACTER_SET_NAME varchar(64) NO
|
||||
COLLATION_NAME varchar(32) NO
|
||||
CHARACTER_SET_NAME varchar(32) NO
|
||||
ID bigint(11) NO 0
|
||||
IS_DEFAULT varchar(3) NO
|
||||
IS_COMPILED varchar(3) NO
|
||||
@ -37,8 +37,8 @@ SORTLEN bigint(3) NO 0
|
||||
SHOW CREATE TABLE information_schema.COLLATIONS;
|
||||
Table Create Table
|
||||
COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` (
|
||||
`COLLATION_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`COLLATION_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`ID` bigint(11) NOT NULL DEFAULT '0',
|
||||
`IS_DEFAULT` 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
|
||||
SHOW COLUMNS FROM information_schema.COLLATIONS;
|
||||
Field Type Null Key Default Extra
|
||||
COLLATION_NAME varchar(64) NO
|
||||
CHARACTER_SET_NAME varchar(64) NO
|
||||
COLLATION_NAME varchar(32) NO
|
||||
CHARACTER_SET_NAME varchar(32) NO
|
||||
ID bigint(11) NO 0
|
||||
IS_DEFAULT varchar(3) NO
|
||||
IS_COMPILED varchar(3) NO
|
||||
|
@ -40,8 +40,8 @@ CHARACTER_MAXIMUM_LENGTH bigint(21) unsigned YES NULL
|
||||
CHARACTER_OCTET_LENGTH bigint(21) unsigned YES NULL
|
||||
NUMERIC_PRECISION bigint(21) unsigned YES NULL
|
||||
NUMERIC_SCALE bigint(21) unsigned YES NULL
|
||||
CHARACTER_SET_NAME varchar(64) YES NULL
|
||||
COLLATION_NAME varchar(64) YES NULL
|
||||
CHARACTER_SET_NAME varchar(32) YES NULL
|
||||
COLLATION_NAME varchar(32) YES NULL
|
||||
COLUMN_TYPE longtext NO NULL
|
||||
COLUMN_KEY varchar(3) NO
|
||||
EXTRA varchar(27) NO
|
||||
@ -62,8 +62,8 @@ COLUMNS CREATE TEMPORARY TABLE `COLUMNS` (
|
||||
`CHARACTER_OCTET_LENGTH` bigint(21) unsigned DEFAULT NULL,
|
||||
`NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL,
|
||||
`NUMERIC_SCALE` bigint(21) unsigned DEFAULT NULL,
|
||||
`CHARACTER_SET_NAME` varchar(64) DEFAULT NULL,
|
||||
`COLLATION_NAME` varchar(64) DEFAULT NULL,
|
||||
`CHARACTER_SET_NAME` varchar(32) DEFAULT NULL,
|
||||
`COLLATION_NAME` varchar(32) DEFAULT NULL,
|
||||
`COLUMN_TYPE` longtext NOT NULL,
|
||||
`COLUMN_KEY` varchar(3) 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
|
||||
NUMERIC_PRECISION bigint(21) unsigned YES NULL
|
||||
NUMERIC_SCALE bigint(21) unsigned YES NULL
|
||||
CHARACTER_SET_NAME varchar(64) YES NULL
|
||||
COLLATION_NAME varchar(64) YES NULL
|
||||
CHARACTER_SET_NAME varchar(32) YES NULL
|
||||
COLLATION_NAME varchar(32) YES NULL
|
||||
COLUMN_TYPE longtext NO NULL
|
||||
COLUMN_KEY varchar(3) NO
|
||||
EXTRA varchar(27) NO
|
||||
|
@ -3,22 +3,22 @@ WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
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
|
||||
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 DEFAULT_COLLATE_NAME 2 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 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 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 COLLATION_NAME 1 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 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 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 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 COLLATION_NAME 1 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 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_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 COLLATION_NAME 14 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 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_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
|
||||
@ -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 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_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_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 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
|
||||
@ -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 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_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 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_COLLATION_NAME 4 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 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 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
|
||||
@ -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_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_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_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 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
|
||||
@ -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 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_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_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
|
||||
@ -357,18 +357,18 @@ WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
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
|
||||
3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_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 32 96 utf8 utf8_general_ci varchar(32)
|
||||
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)
|
||||
3.0000 information_schema COLLATIONS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLLATIONS CHARACTER_SET_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 32 96 utf8 utf8_general_ci varchar(32)
|
||||
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_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(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 CHARACTER_SET_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 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_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)
|
||||
@ -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 NUMERIC_PRECISION 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 COLLATION_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 32 96 utf8 utf8_general_ci varchar(32)
|
||||
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 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 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_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_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_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)
|
||||
@ -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)
|
||||
NULL information_schema ROUTINES CREATED 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 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)
|
||||
@ -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 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 DEFAULT_CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema SCHEMATA DEFAULT_COLLATION_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 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 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)
|
||||
@ -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 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_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_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_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)
|
||||
@ -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 UPDATE_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
|
||||
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)
|
||||
|
@ -45,7 +45,7 @@ SQL_PATH varchar(64) YES NULL
|
||||
SECURITY_TYPE varchar(7) NO
|
||||
CREATED 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
|
||||
DEFINER varchar(77) NO
|
||||
CHARACTER_SET_CLIENT varchar(32) NO
|
||||
@ -71,7 +71,7 @@ ROUTINES CREATE TEMPORARY TABLE `ROUTINES` (
|
||||
`SECURITY_TYPE` varchar(7) NOT NULL DEFAULT '',
|
||||
`CREATED` 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 '',
|
||||
`DEFINER` varchar(77) 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
|
||||
CREATED 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
|
||||
DEFINER varchar(77) NO
|
||||
CHARACTER_SET_CLIENT varchar(32) NO
|
||||
|
@ -30,24 +30,24 @@ DESCRIBE information_schema.SCHEMATA;
|
||||
Field Type Null Key Default Extra
|
||||
CATALOG_NAME varchar(512) YES NULL
|
||||
SCHEMA_NAME varchar(64) NO
|
||||
DEFAULT_CHARACTER_SET_NAME varchar(64) NO
|
||||
DEFAULT_COLLATION_NAME varchar(64) NO
|
||||
DEFAULT_CHARACTER_SET_NAME varchar(32) NO
|
||||
DEFAULT_COLLATION_NAME varchar(32) NO
|
||||
SQL_PATH varchar(512) YES NULL
|
||||
SHOW CREATE TABLE information_schema.SCHEMATA;
|
||||
Table Create Table
|
||||
SCHEMATA CREATE TEMPORARY TABLE `SCHEMATA` (
|
||||
`CATALOG_NAME` varchar(512) DEFAULT NULL,
|
||||
`SCHEMA_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`DEFAULT_CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATION_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`DEFAULT_CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATION_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`SQL_PATH` varchar(512) DEFAULT NULL
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||
SHOW COLUMNS FROM information_schema.SCHEMATA;
|
||||
Field Type Null Key Default Extra
|
||||
CATALOG_NAME varchar(512) YES NULL
|
||||
SCHEMA_NAME varchar(64) NO
|
||||
DEFAULT_CHARACTER_SET_NAME varchar(64) NO
|
||||
DEFAULT_COLLATION_NAME varchar(64) NO
|
||||
DEFAULT_CHARACTER_SET_NAME varchar(32) NO
|
||||
DEFAULT_COLLATION_NAME varchar(32) NO
|
||||
SQL_PATH varchar(512) YES NULL
|
||||
SELECT catalog_name, schema_name, sql_path
|
||||
FROM information_schema.schemata
|
||||
|
@ -45,7 +45,7 @@ AUTO_INCREMENT bigint(21) unsigned YES NULL
|
||||
CREATE_TIME datetime YES NULL
|
||||
UPDATE_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
|
||||
CREATE_OPTIONS varchar(255) YES NULL
|
||||
TABLE_COMMENT varchar(80) NO
|
||||
@ -69,7 +69,7 @@ TABLES CREATE TEMPORARY TABLE `TABLES` (
|
||||
`CREATE_TIME` datetime DEFAULT NULL,
|
||||
`UPDATE_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,
|
||||
`CREATE_OPTIONS` varchar(255) DEFAULT NULL,
|
||||
`TABLE_COMMENT` varchar(80) NOT NULL DEFAULT ''
|
||||
@ -93,7 +93,7 @@ AUTO_INCREMENT bigint(21) unsigned YES NULL
|
||||
CREATE_TIME datetime YES NULL
|
||||
UPDATE_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
|
||||
CREATE_OPTIONS varchar(255) YES NULL
|
||||
TABLE_COMMENT varchar(80) NO
|
||||
@ -310,6 +310,7 @@ SELECT UPDATE_TIME, checksum INTO @UPDATE_TIME, @checksum
|
||||
FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
INSERT INTO db_datadict.t1_my_tablex SET f1 = 3;
|
||||
FLUSH TABLES;
|
||||
SELECT UPDATE_TIME > @UPDATE_TIME
|
||||
AS "Is current UPDATE_TIME bigger than before last INSERT?"
|
||||
FROM information_schema.tables
|
||||
|
@ -185,7 +185,7 @@ let $message= use db with trigger privilege on db level and without...:;
|
||||
select f1 from t1 order by f1;
|
||||
--disable_warnings
|
||||
disconnect no_privs;
|
||||
--enable warnings
|
||||
--enable_warnings
|
||||
|
||||
connection yes_privs;
|
||||
select current_user;
|
||||
|
2
mysql-test/t/ctype_filesystem-master.opt
Normal file
2
mysql-test/t/ctype_filesystem-master.opt
Normal file
@ -0,0 +1,2 @@
|
||||
--character-sets-dir=$MYSQL_TEST_DIR/ß
|
||||
--character-set-filesystem=latin1
|
6
mysql-test/t/ctype_filesystem.test
Normal file
6
mysql-test/t/ctype_filesystem.test
Normal file
@ -0,0 +1,6 @@
|
||||
SET CHARACTER SET utf8;
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
SHOW VARIABLES like 'character_sets_dir';
|
||||
SHOW VARIABLES like 'character_set_filesystem';
|
||||
SHOW VARIABLES like 'character_set_client';
|
||||
SET CHARACTER SET default;
|
@ -1439,3 +1439,20 @@ select hex(_utf8 X'616263FF');
|
||||
select hex(_utf8 B'001111111111');
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select (_utf8 X'616263FF');
|
||||
|
||||
#
|
||||
# Bug #36772: When using UTF8, CONVERT with GROUP BY returns truncated results
|
||||
#
|
||||
CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL);
|
||||
INSERT INTO t1 VALUES (70000, 1092), (70001, 1085), (70002, 1065);
|
||||
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1;
|
||||
ALTER TABLE t1 ADD UNIQUE (b);
|
||||
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||
DROP INDEX b ON t1;
|
||||
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
|
||||
ALTER TABLE t1 ADD INDEX (b);
|
||||
SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) from t1 GROUP BY b;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
@ -10,7 +10,6 @@
|
||||
#
|
||||
##############################################################################
|
||||
federated_transactions : Bug#29523 Transactions do not work
|
||||
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
|
||||
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
|
||||
@ -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
|
||||
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
|
||||
wait_timeout_func : Bug #41225 joro wait_timeout_func fails
|
||||
|
@ -1,11 +1,12 @@
|
||||
# Can't test with embedded server that doesn't support grants
|
||||
# Can't test with embedded server that doesn't support events
|
||||
-- source include/not_embedded.inc
|
||||
|
||||
CREATE DATABASE IF NOT EXISTS events_test;
|
||||
USE events_test;
|
||||
|
||||
SET @event_scheduler=@@global.event_scheduler;
|
||||
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;
|
||||
SHOW VARIABLES LIKE 'event_scheduler';
|
||||
SET GLOBAL event_scheduler=1;
|
||||
@ -57,34 +58,44 @@ ON COMPLETION PRESERVE
|
||||
DO
|
||||
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 $wait_condition=select count(*) >= 4 from table_1;
|
||||
--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
|
||||
where event_name='event_2' and status='enabled';
|
||||
--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
|
||||
where event_name='event_3';
|
||||
--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
|
||||
where event_name='event_4' and status='enabled';
|
||||
--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;
|
||||
source include/wait_condition.inc;
|
||||
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;
|
||||
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;
|
||||
source include/wait_condition.inc;
|
||||
@ -112,9 +123,9 @@ DROP TABLE table_2;
|
||||
DROP TABLE table_3;
|
||||
DROP TABLE table_4;
|
||||
DROP DATABASE events_test;
|
||||
SET GLOBAL event_scheduler=OFF;
|
||||
SET GLOBAL event_scheduler=@event_scheduler;
|
||||
|
||||
#
|
||||
#
|
||||
# End of tests
|
||||
#
|
||||
|
||||
|
@ -1,11 +1,40 @@
|
||||
# This test case is sensitive to execution timing. You may control
|
||||
# this sensitivity by the parameter below. Small values will result
|
||||
# in fast but more unstable execution, large values will improve
|
||||
# stability at the cost of speed. Basically, N is a number of seconds
|
||||
# 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
|
||||
# relevant).
|
||||
# 1. This test case is sensitive to execution timing. You may control
|
||||
# this sensitivity by the parameter below. Small values will result
|
||||
# in fast but more unstable execution, large values will improve
|
||||
# stability at the cost of speed. Basically, N is a number of seconds
|
||||
# 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
|
||||
# relevant).
|
||||
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
|
||||
|
||||
@ -73,19 +102,15 @@ delimiter ;//
|
||||
SET @step3= @step * 3;
|
||||
SET @step6= @step * 6;
|
||||
|
||||
# Disable query log to hide current time.
|
||||
--disable_query_log
|
||||
SET @unix_time= UNIX_TIMESTAMP() - 1;
|
||||
--enable_query_log
|
||||
|
||||
SET @unix_time= @unix_time - @unix_time % @step6;
|
||||
|
||||
INSERT INTO mysql.time_zone VALUES (NULL, 'N');
|
||||
SET @tzid= LAST_INSERT_ID();
|
||||
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
|
||||
VALUES (@tzid, 1, @step3 - @step, 1, 'b16420_1');
|
||||
VALUES (@tzid, 1, @step3 - @step, 1, 'b16420_1');
|
||||
|
||||
let $transition_unix_time= `SELECT @unix_time`;
|
||||
let $count= 30;
|
||||
@ -99,7 +124,9 @@ while ($count)
|
||||
dec $count;
|
||||
}
|
||||
--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 t2 (count INT);
|
||||
@ -135,7 +162,8 @@ SET TIME_ZONE= '+00:00';
|
||||
CREATE EVENT e1 ON SCHEDULE EVERY @step SECOND
|
||||
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
|
||||
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 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;
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
VALUES (@tzid, 3, @offset_month_04, 1, 'b16420_3');
|
||||
VALUES (@tzid, 3, @offset_month_04, 1, 'b16420_3');
|
||||
INSERT INTO mysql.time_zone_transition
|
||||
VALUES (@tzid, @now, 0);
|
||||
INSERT INTO mysql.time_zone_transition
|
||||
@ -231,11 +261,12 @@ INSERT INTO mysql.time_zone_transition
|
||||
VALUES (@tzid, @now + 7 * @step, 2);
|
||||
INSERT INTO mysql.time_zone_transition
|
||||
VALUES (@tzid, @now + 12 * @step, 3);
|
||||
# We have to user a new time zone name, because 'bug16420' has been
|
||||
# cached already.
|
||||
INSERT INTO mysql.time_zone_name VALUES ('bug16420_2', @tzid);
|
||||
let $tz_name = `SELECT CONCAT('b16420_b',UNIX_TIMESTAMP())`;
|
||||
--replace_result $tz_name <TZ_NAME_2>
|
||||
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;
|
||||
|
||||
@ -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 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 TABLE t_step;
|
||||
@ -291,8 +324,8 @@ eval USE $old_db;
|
||||
|
||||
--enable_query_log
|
||||
let $wait_condition=
|
||||
select count(*) = 0 from information_schema.processlist
|
||||
where db='mysqltest_db1' and command = 'Connect' and user=current_user();
|
||||
SELECT COUNT(*) = 0 FROM information_schema.processlist
|
||||
WHERE db='mysqltest_db1' AND command = 'Connect' AND user=current_user();
|
||||
--source include/wait_condition.inc
|
||||
|
||||
--echo End of 5.1 tests.
|
||||
|
@ -418,3 +418,30 @@ SELECT a FROM t1 WHERE MATCH a AGAINST ('+city* of*' IN BOOLEAN MODE);
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
# BUG#38842 - Fix for 25951 seems incorrect
|
||||
#
|
||||
CREATE TABLE t1 (a VARCHAR(255), b INT, FULLTEXT(a), KEY(b));
|
||||
INSERT INTO t1 VALUES('test', 1),('test', 1),('test', 1),('test', 1),
|
||||
('test', 1),('test', 2),('test', 3),('test', 4);
|
||||
|
||||
EXPLAIN SELECT * FROM t1
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
|
||||
EXPLAIN SELECT * FROM t1 USE INDEX(a)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
|
||||
EXPLAIN SELECT * FROM t1 FORCE INDEX(a)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
|
||||
EXPLAIN SELECT * FROM t1 IGNORE INDEX(a)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
|
||||
EXPLAIN SELECT * FROM t1 USE INDEX(b)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
|
||||
EXPLAIN SELECT * FROM t1 FORCE INDEX(b)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
@ -43,8 +43,11 @@ drop table t1;
|
||||
# note that when LOW_MEMORY is set the "test" below is meaningless
|
||||
#
|
||||
|
||||
set @@max_allowed_packet=1048576*100;
|
||||
set @@global.max_allowed_packet=1048576*100;
|
||||
--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;
|
||||
|
||||
#
|
||||
|
@ -973,5 +973,34 @@ GROUP BY int_nokey LIMIT 1;
|
||||
DROP TABLE derived1;
|
||||
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
|
||||
|
@ -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
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Bug#37553: MySql Error Compare TimeDiff & Time
|
||||
#
|
||||
|
||||
# calculations involving negative time values ignored sign
|
||||
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10'),time('00:00:00');
|
||||
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00');
|
||||
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00');
|
||||
|
||||
# show that conversion to DECIMAL no longer drops sign
|
||||
SELECT CAST(time('-73:42:12') AS DECIMAL);
|
||||
|
||||
|
||||
# End of 5.0 tests
|
||||
|
@ -79,7 +79,7 @@ INSERT into t1(name) values('Record_4');
|
||||
--chmod 0777 $MYSQLD_LOGFILE.orig
|
||||
|
||||
--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
|
||||
eval SET @orig_file= load_file('$MYSQLD_LOGFILE.orig');
|
||||
--replace_result $MYSQLD_LOGFILE MYSQLD_LOGFILE
|
||||
|
@ -11,18 +11,23 @@
|
||||
# Creation Date: 2008-03-07 #
|
||||
# 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 #
|
||||
# that checks the functionality of this variable #
|
||||
# #
|
||||
# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
|
||||
# server-system-variables.html #
|
||||
# Reference: #
|
||||
# http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
SET @save = @@global.group_concat_max_len;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
|
||||
#########################
|
||||
@ -32,34 +37,38 @@ drop table if exists t1;
|
||||
--echo ## Creating new table t1 ##
|
||||
CREATE TABLE t1
|
||||
(
|
||||
id INT NOT NULL auto_increment,
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (id),
|
||||
rollno int NOT NULL,
|
||||
rollno INT NOT NULL,
|
||||
name VARCHAR(30)
|
||||
);
|
||||
|
||||
--echo '#--------------------FN_DYNVARS_034_01-------------------------#'
|
||||
########################################################################
|
||||
# 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;
|
||||
|
||||
--echo ## Inserting some rows in table ##
|
||||
INSERT into t1(rollno, name) values(1, 'Record_1');
|
||||
INSERT into t1(rollno, name) values(2, 'Record_2');
|
||||
INSERT into t1(rollno, name) values(1, 'Record_3');
|
||||
INSERT into t1(rollno, name) values(3, 'Record_4');
|
||||
INSERT into t1(rollno, name) values(1, 'Record_5');
|
||||
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_8');
|
||||
--echo ## Inserting some rows in table ##
|
||||
INSERT INTO t1(rollno, name) VALUES(1, 'Record_1');
|
||||
INSERT INTO t1(rollno, name) VALUES(2, 'Record_2');
|
||||
INSERT INTO t1(rollno, name) VALUES(1, 'Record_3');
|
||||
INSERT INTO t1(rollno, name) VALUES(3, 'Record_4');
|
||||
INSERT INTO t1(rollno, name) VALUES(1, 'Record_5');
|
||||
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_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 ##
|
||||
CONNECT (test_con1,localhost,root,,);
|
||||
CONNECT (test_con2,localhost,root,,);
|
||||
--echo ## Creating two new connections ##
|
||||
connect (test_con1,localhost,root,,);
|
||||
connect (test_con2,localhost,root,,);
|
||||
|
||||
|
||||
--echo '#--------------------FN_DYNVARS_034_02-------------------------#'
|
||||
@ -68,16 +77,16 @@ CONNECT (test_con2,localhost,root,,);
|
||||
###############################################################################
|
||||
|
||||
--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 ##
|
||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
||||
--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;
|
||||
|
||||
--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;
|
||||
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-------------------------#'
|
||||
@ -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 #
|
||||
##############################################################################
|
||||
|
||||
--echo ## Connecting with new connection test_con2 ##
|
||||
--echo ## Connecting with new 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;
|
||||
|
||||
--echo ## Setting session value of variable to 20 and verifying variable is concating ##
|
||||
--echo ## column's value to 20 or not ##
|
||||
--echo ## Setting session value of variable to 20 and verifying variable is concating ##
|
||||
--echo ## column's value to 20 or not ##
|
||||
SET @@session.group_concat_max_len = 20;
|
||||
|
||||
--echo ## Verifying value of name column, it should not me more than 20 characters ##
|
||||
--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-------------------------#'
|
||||
@ -106,12 +115,12 @@ SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
||||
# greater than the maximum concat length of name column #
|
||||
###############################################################################
|
||||
|
||||
--echo ## Setting session value of variable to 26. No warning should appear here ##
|
||||
--echo ## because the value after concatination is less than 30 ##
|
||||
--echo ## Setting session value of variable to 26. No warning should appear here ##
|
||||
--echo ## because the value after concatination is less than 30 ##
|
||||
SET @@session.group_concat_max_len = 26;
|
||||
|
||||
--echo ## Verifying value of name column, it should not give warning now ##
|
||||
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
|
||||
--echo ## Verifying value of name column, it should not give warning now ##
|
||||
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 ##
|
||||
DROP table t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo ## Disconnecting both the connection ##
|
||||
DISCONNECT test_con2;
|
||||
DISCONNECT test_con1;
|
||||
disconnect test_con2;
|
||||
disconnect test_con1;
|
||||
|
||||
connection default;
|
||||
|
||||
|
@ -1350,4 +1350,41 @@ explain select count(*) from information_schema.tables;
|
||||
explain select count(*) from information_schema.columns;
|
||||
explain select count(*) from information_schema.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.
|
||||
|
@ -121,3 +121,13 @@ SHOW CREATE TABLE t1;
|
||||
SELECT PARTITION_DESCRIPTION FROM information_schema.partitions WHERE
|
||||
table_schema = "test" AND table_name = "t1";
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#38909 CREATE_OPTIONS in information_schema produces wrong results
|
||||
#
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1 (f1 int key) partition by key(f1) partitions 2;
|
||||
select create_options from information_schema.tables where table_schema="test";
|
||||
drop table t1;
|
||||
|
@ -8,7 +8,9 @@
|
||||
-- disable_query_log
|
||||
-- disable_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;
|
||||
CREATE TABLE bug34300 (
|
||||
|
@ -43,3 +43,13 @@ CREATE TABLE t1 ( a INT ) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES(1);
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#37284 Crash in Field_string::type()
|
||||
#
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
CREATE TABLE t1 (a char(50)) ENGINE=InnoDB;
|
||||
CREATE INDEX i1 on t1 (a(3));
|
||||
SELECT * FROM t1 WHERE a = 'abcde';
|
||||
DROP TABLE t1;
|
||||
|
@ -10,12 +10,13 @@
|
||||
# #
|
||||
# Creation Date: 2008-03-08 #
|
||||
# Author: Rizwan #
|
||||
# Modified: HHunger 2008-08-29
|
||||
# #
|
||||
# Description: Test Cases of Dynamic System Variable log_output #
|
||||
# that checks the behavior of this variable #
|
||||
# #
|
||||
# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
|
||||
# server-system-variables.html #
|
||||
# Reference: #
|
||||
# http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
@ -23,6 +24,10 @@
|
||||
# ps-protocol. So, it is switched off.
|
||||
--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-------------------------#'
|
||||
##################################################################
|
||||
# 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
|
||||
--echo 'connect (con1,localhost,root,,,,)'
|
||||
connect (con1,localhost,root,,,,);
|
||||
--echo 'connection con1'
|
||||
connection con1;
|
||||
SELECT @@global.log_output;
|
||||
SET @@global.log_output = 'TABLE,FILE';
|
||||
|
||||
# Test that the effect is global
|
||||
--echo 'connect (con2,localhost,root,,,,)'
|
||||
connect (con2,localhost,root,,,,);
|
||||
--echo 'connection con2'
|
||||
connection con2;
|
||||
SELECT @@global.log_output;
|
||||
disconnect con2;
|
||||
|
||||
|
||||
--echo '#--------------------FN_DYNVARS_065_02-------------------------#'
|
||||
####################################################
|
||||
@ -52,10 +52,9 @@ disconnect con2;
|
||||
--echo 'connection con1'
|
||||
connection con1;
|
||||
|
||||
|
||||
#=======================================================================
|
||||
#===============================================================
|
||||
--echo '---Checking general_log when log_output is NONE---'
|
||||
#=======================================================================
|
||||
#===============================================================
|
||||
|
||||
SET @@global.log_output = 'NONE';
|
||||
TRUNCATE TABLE mysql.general_log;
|
||||
@ -64,13 +63,13 @@ TRUNCATE TABLE mysql.general_log;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 value(1);
|
||||
INSERT INTO t1 VALUE(1);
|
||||
SELECT 'abc';
|
||||
SELECT count(*) FROM mysql.general_log;
|
||||
|
||||
#==============================================================================
|
||||
#===============================================================
|
||||
--echo '---Checking general_log when log_output is TABLE---'
|
||||
#==============================================================================
|
||||
#===============================================================
|
||||
|
||||
SET @@global.log_output = 'TABLE';
|
||||
TRUNCATE TABLE mysql.general_log;
|
||||
@ -78,35 +77,49 @@ TRUNCATE TABLE mysql.general_log;
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
create table t1(a int);
|
||||
INSERT INTO t1 value(1);
|
||||
CREATE TABLE t1(a int);
|
||||
INSERT INTO t1 VALUE(1);
|
||||
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
|
||||
#===========================================================
|
||||
|
||||
#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';
|
||||
TRUNCATE TABLE mysql.general_log;
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
create table t1(a int);
|
||||
INSERT INTO t1 value(1);
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 VALUE(1);
|
||||
SELECT 'abc';
|
||||
SELECT count(*) from mysql.general_log;
|
||||
SELECT count(*) FROM mysql.general_log;
|
||||
|
||||
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
|
||||
####################################################
|
||||
# Endo of functionality Testing for log_output #
|
||||
# End of functionality Testing for log_output #
|
||||
####################################################
|
||||
|
||||
|
@ -36,8 +36,13 @@
|
||||
|
||||
SET @start_global_value = @@global.max_allowed_packet;
|
||||
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-------------------------#'
|
||||
@ -49,7 +54,9 @@ SET @@global.max_allowed_packet = 1000;
|
||||
SET @@global.max_allowed_packet = DEFAULT;
|
||||
SELECT @@global.max_allowed_packet;
|
||||
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET @@session.max_allowed_packet = 20000;
|
||||
--Error ER_NO_DEFAULT
|
||||
SET @@session.max_allowed_packet = DEFAULT;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
|
||||
@ -62,9 +69,6 @@ SELECT @@session.max_allowed_packet;
|
||||
SET @@global.max_allowed_packet = DEFAULT;
|
||||
SELECT @@global.max_allowed_packet = 1048576;
|
||||
|
||||
SET @@session.max_allowed_packet = DEFAULT;
|
||||
SELECT @@session.max_allowed_packet = 1048576;
|
||||
|
||||
|
||||
--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 #
|
||||
#############################################################################
|
||||
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET @@session.max_allowed_packet = 1024;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET @@session.max_allowed_packet = 1025;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET @@session.max_allowed_packet = 65535;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET @@session.max_allowed_packet = 1073741824;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET @@session.max_allowed_packet = 1073741823;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
|
||||
@ -118,14 +127,18 @@ SELECT @@global.max_allowed_packet;
|
||||
SET @@global.max_allowed_packet = test;
|
||||
SELECT @@global.max_allowed_packet;
|
||||
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET @@session.max_allowed_packet = 0;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET @@session.max_allowed_packet = 1023;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET @@session.max_allowed_packet = -2;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
--Error ER_PARSE_ERROR
|
||||
SET @@session.max_allowed_packet = 65530.34.;
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET @@session.max_allowed_packet = 10737418241;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
--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 #
|
||||
########################################################################################################
|
||||
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET @@max_allowed_packet = 100000;
|
||||
SELECT @@max_allowed_packet = @@local.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 #
|
||||
#############################################################################
|
||||
|
||||
--Error ER_VARIABLE_IS_READONLY
|
||||
SET max_allowed_packet = 1024;
|
||||
SELECT @@max_allowed_packet;
|
||||
--Error ER_UNKNOWN_TABLE
|
||||
@ -204,9 +219,9 @@ SELECT max_allowed_packet = @@session.max_allowed_packet;
|
||||
# Restore initial value #
|
||||
####################################
|
||||
|
||||
connection default;
|
||||
SET @@global.max_allowed_packet = @start_global_value;
|
||||
SELECT @@global.max_allowed_packet;
|
||||
SET @@session.max_allowed_packet = @start_session_value;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
|
||||
|
||||
|
@ -43,26 +43,19 @@ name BLOB
|
||||
|
||||
--echo '#--------------------FN_DYNVARS_070_01-------------------------#'
|
||||
###############################################################################
|
||||
# Setting initial value of max_allowed_packet to 1024 at session level and #
|
||||
# verifying its behavior after inserting data greater than 1024 bytes #
|
||||
# Setting initial value of max_allowed_packet to 1024 at session level
|
||||
# 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.net_buffer_length = 1024;
|
||||
SELECT @@session.max_allowed_packet;
|
||||
|
||||
--error ER_VARIABLE_IS_READONLY
|
||||
SET @@session.net_buffer_length = 1024;
|
||||
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-------------------------#'
|
||||
###############################################################################
|
||||
|
@ -10,9 +10,9 @@ source include/have_log_bin.inc;
|
||||
drop table if exists t1,t2,t3;
|
||||
drop database if exists mysqltest;
|
||||
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;
|
||||
--error 0,1141,1147
|
||||
--error 0,ER_NONEXISTING_GRANT,ER_NONEXISTING_TABLE_GRANT
|
||||
revoke all privileges on mysqltest.* from mysqltest_1@localhost;
|
||||
delete from mysql.user where user=_binary'mysqltest_1';
|
||||
--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 t2 values(1,10),(2,20);
|
||||
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;
|
||||
--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 WHERE t1.n=t2.n;
|
||||
unlock tables;
|
||||
@ -183,7 +183,7 @@ create table t1 (n int(10), d int(10));
|
||||
create table t2 (n int(10), d int(10));
|
||||
insert into t1 values(1,1);
|
||||
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;
|
||||
set sql_safe_updates=0;
|
||||
drop table t1,t2;
|
||||
@ -196,7 +196,7 @@ set timestamp=1038000000;
|
||||
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 t2;
|
||||
--error 1064
|
||||
--error ER_PARSE_ERROR
|
||||
UPDATE t1,t2 SET 1=2 WHERE t1.n=t2.n;
|
||||
drop table t1,t2;
|
||||
set timestamp=0;
|
||||
@ -323,41 +323,6 @@ delete t1, t2 from t2,t1
|
||||
|
||||
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)
|
||||
#
|
||||
@ -367,7 +332,7 @@ CREATE TABLE t2 ( a int );
|
||||
DELETE t1 FROM t1, t2 AS t3;
|
||||
DELETE t4 FROM t1, 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;
|
||||
INSERT INTO t1 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 t2 (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);
|
||||
drop table t1, t2, t3;
|
||||
|
||||
@ -431,9 +396,9 @@ drop table t1, t2, t3;
|
||||
#
|
||||
create table t1 (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;
|
||||
-- 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;
|
||||
drop table t1,t2;
|
||||
|
||||
@ -458,7 +423,7 @@ drop table t1, t2;
|
||||
#
|
||||
create table t1(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);
|
||||
drop table t1, t2;
|
||||
# End of 4.1 tests
|
||||
|
1
mysql-test/t/multi_update2-master.opt
Normal file
1
mysql-test/t/multi_update2-master.opt
Normal file
@ -0,0 +1 @@
|
||||
--set-variable=tmp_table_size=1024
|
43
mysql-test/t/multi_update2.test
Normal file
43
mysql-test/t/multi_update2.test
Normal file
@ -0,0 +1,43 @@
|
||||
#
|
||||
# Test of update statement that uses many tables.
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# Bug#1820 Rows not deleted from second table on multi-table delete
|
||||
#
|
||||
|
||||
CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL) ;
|
||||
--echo # The protocolling of many inserts into t1 is suppressed.
|
||||
--disable_query_log
|
||||
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4);
|
||||
let $1=19;
|
||||
set @d=4;
|
||||
while ($1)
|
||||
{
|
||||
eval INSERT INTO t1 SELECT a+@d,b+@d FROM t1;
|
||||
eval SET @d=@d*2;
|
||||
dec $1;
|
||||
}
|
||||
|
||||
--enable_query_log
|
||||
ALTER TABLE t1 ADD INDEX i1(a);
|
||||
DELETE FROM t1 WHERE a > 2000000;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
INSERT INTO t2 SELECT * FROM t1;
|
||||
|
||||
SELECT 't2 rows before small delete', COUNT(*) FROM t1;
|
||||
DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 2;
|
||||
SELECT 't2 rows after small delete', COUNT(*) FROM t2;
|
||||
SELECT 't1 rows after small delete', COUNT(*) FROM t1;
|
||||
|
||||
## Try deleting many rows
|
||||
|
||||
DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 100*1000;
|
||||
SELECT 't2 rows after big delete', COUNT(*) FROM t2;
|
||||
SELECT 't1 rows after big delete', COUNT(*) FROM t1;
|
||||
|
||||
DROP TABLE t1,t2;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user