From 491d945ab6766a1733c8963f50f04edad0713eb7 Mon Sep 17 00:00:00 2001
From: "dkatz@damien-katzs-computer.local" <>
Date: Tue, 17 Jul 2007 14:43:56 -0400
Subject: [PATCH 01/29] Bug #29784 YaSSL assertion failure when reading 8k
key.
Fixed the yassl base64 decoding to correctly allocate a maximum decoded buffer size.
---
extra/yassl/taocrypt/src/coding.cpp | 2 +-
mysql-test/r/ssl_8k_key.result | 2 +
mysql-test/std_data/server8k-cert.pem | 51 ++++++++++++++
mysql-test/std_data/server8k-key.pem | 99 +++++++++++++++++++++++++++
mysql-test/t/ssl_8k_key.test | 6 ++
5 files changed, 159 insertions(+), 1 deletion(-)
create mode 100644 mysql-test/r/ssl_8k_key.result
create mode 100644 mysql-test/std_data/server8k-cert.pem
create mode 100644 mysql-test/std_data/server8k-key.pem
create mode 100644 mysql-test/t/ssl_8k_key.test
diff --git a/extra/yassl/taocrypt/src/coding.cpp b/extra/yassl/taocrypt/src/coding.cpp
index 68055b3aff4..55fe31831e3 100644
--- a/extra/yassl/taocrypt/src/coding.cpp
+++ b/extra/yassl/taocrypt/src/coding.cpp
@@ -184,7 +184,7 @@ void Base64Decoder::Decode()
{
word32 bytes = coded_.size();
word32 plainSz = bytes - ((bytes + (pemLineSz - 1)) / pemLineSz);
- plainSz = (plainSz * 3 + 3) / 4;
+ plainSz = ((plainSz * 3) / 4) + 3;
decoded_.New(plainSz);
word32 i = 0;
diff --git a/mysql-test/r/ssl_8k_key.result b/mysql-test/r/ssl_8k_key.result
new file mode 100644
index 00000000000..b33a1d2854f
--- /dev/null
+++ b/mysql-test/r/ssl_8k_key.result
@@ -0,0 +1,2 @@
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
diff --git a/mysql-test/std_data/server8k-cert.pem b/mysql-test/std_data/server8k-cert.pem
new file mode 100644
index 00000000000..a0750f9e69e
--- /dev/null
+++ b/mysql-test/std_data/server8k-cert.pem
@@ -0,0 +1,51 @@
+-----BEGIN CERTIFICATE-----
+MIIJHDCCBQQCAQEwDQYJKoZIhvcNAQEEBQAwTjELMAkGA1UEBhMCU0UxEDAOBgNV
+BAgTB1VwcHNhbGExETAPBgNVBAoTCE15U1FMIEFCMQ0wCwYDVQQLEwRUZXN0MQsw
+CQYDVQQDEwJDQTAeFw0wNzA3MTMwNzU2MjVaFw0xMDA0MDgwNzU2MjVaMFoxCzAJ
+BgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRkwFwYDVQQKFBBNeVNRTCAgIAog
+ICAgIEFCMQ0wCwYDVQQLEwRUZXN0MQ8wDQYDVQQDEwZzZXJ2ZXIwggQiMA0GCSqG
+SIb3DQEBAQUAA4IEDwAwggQKAoIEAQDUFlh/3mwov5YaICFXOdJXgHV/uDkTjXB6
+9oxlipshQaYPX8LDT5vhI3gPciS1Z1sRE2dTcC4Mk2K4LDUIjp3WkeTfFAHZPV3E
+Y+3OH/ftH4N6SEIBTKE4EY6ah0nJtU98M0JhxOh5zHje6zQp1SkBnhEOQYexYRqj
+OtGloZ9RyF0iFAXcyu2Ap14u37l5Yla0cyPzvZqP4mFYlcXwaRfAacJmqMM1vuQv
+Fx1JITUTBugMF3VGZ1F0tw63EIUH/FW/WWncPqvG18na40qlv9ZkBw0FhZeKS8cK
+JIY5y4J30jn/eV8p1lTO7K+ASTuGZWmdRDgjUG0Y9OGuKsPPoaE6ml0HTnMBsBSQ
+fXUq9XkwGt8DTgPioAKHBHjLbILEy4FMYWrlTZlPTzNqyhayec/2T15oDladNSt7
+JpDLpX70UECXFhdEGxsGxtXdKbIBvNm2yT4X2nxW9ItsECjSSgD+94TgGoa8QKDw
+rpmgq+Wqpm54CZ1vN1oqyMUw1sjNEX/iLByHAjSALby2Kffk5cl5mnsR6d/k4jsi
+c3Qsciwkd+rQt/8VMhS2ns3nkez/BK3FvQA2Ms8xJhFLfszVrBhnjcFRTNT2+/KM
+lr1oT5Q1XZKL7qVXTpabPL51JlVBL5CSHl1QRkffsqfqcgJkcHBq+kKjUiFs4lad
+hTrvNBCXYa5+NkA2QqIfdOpNwl62/gdE7/7zU1uh40vkVKyzL+APkLPywPEXBOpQ
+yIDNkgoXmS10+JMD44K7uZyUmxZL7W7Xbi30NuEFrVOzoUmVXhapPbpQnkQHxn8n
+tqKPYXdBcvXcCKyJ6i79H2Vk9fM6rBYiwNcE7QyWqfd2QMjzr76veF04sXkPR+tG
+5Y1lrF9Zp3vabFXQg2RJuGA3rV6MR2GFNXuChIYu410vhIhPNtmdKEVoIVZsFsug
++dtn0PDCFrR8VEd/sshp0naNa9Ad1lY+marJkOJOVpPgCs2yJDPAUB/YdvSJ4avW
+6ZdvNTwhBL8fEJMS2DSqkaa6A3+i/SqITpU8ToJxsMGagBsLieXgvJALFysSRfR/
+2dmEu9/J0PPc28inHXwjiLb99VKlkuEz8wX9UkuoqFl0pLa8jrlM8hzdPQ9QHb3k
+9c5knfgPCYkOIWwGXH+NwANHdQRK7CmGAFV24k9+P3q0g5ikabVHr+4ZQ3WPd+1H
+K0+Msbb/vv53vFJWa+pYeNeFcwNCyW2kJBTMiI6qmlL4IWCcX+QDzpRLalbAWWHj
+l5Zk39QEaCL024DYK948IDXCqDg6utEs7YnMdaIF0meYMKjehZFp0fVQ8e8Od+rp
+bbjdj/w60wMgBpSOeYxVrs3QKNZd/if4Az3LggoVHB09SjXKiWpvAgMBAAEwDQYJ
+KoZIhvcNAQEEBQADggQBABncOBW0wQwJdEB6W3d9CrhFp40q1OM54GPfX0/0aUfP
+aOQPxS1uCKcFhxAmR4OT9RiJx+0bhDctekkuMkj5yy3u0a/4PxHIhnVxXTyB0/Hj
+N1gLz6cQricunl6Q4Ldi54gR5/KUehKLBWnqsfxhgzWBHosvhlJC0xh/uio7JTqz
+ns60djyL7R4wGbSqiGdhT9L2HfpJo3dmmWLDxe02jaHkbL1Z6NQMxrRgs3+gctp/
+Wd5UxNl4BHbNsSbzaK9V9gXUcj4TjZGGSqVki0+pEZ3dmksGZdoW9cSKtzKvgUQ6
+vhhqO4dcopxkY2zYeVOpspgTm0XLZSbNPXv5rSFwa4cpWSfD7u8o8KhHvkkSMahw
+cMuH17W4voHHFDtWP8Oq9rA7uE/4/LKCl0JmJl2RWM+G6PMH8w4X4auHPssgRvb/
+Ge1AvgqQJrvi7zWx3XYKKJ0ISBy7fi5Jo/wYgLagRYcG3mwdm1+gAdw+77C/ZGmG
+FbWFIPB1+Mc6azhhk9m/vqP7o/Wuncc99mp2zPMzdAEzuzp/IJ9UJNat0edA7jiC
+bQ7JSRJ1DSzdJZSWWHdardLNKipPfrEHVm7f5QvL5DQLnGpt+rCWL361KsGtvETC
+o+Ph7+kDJsJLokUYfs/BEZopzspNPy/NQ2ECwQp7T4Yq/PBE6Ce/dFaoZysMUOrG
+TcALtJW6It98dRmTJPiqjlrlHNTrfoV3Aiy+tK4rpyGuApSHc+1Y+t7YvWotRlQ4
+GEboBqR8evjDPJ1xAaUZqwLkebf3mlpl4MzHM9uNWBkQdJilkQs/IrAaApG3Ayt0
+nIymNHmDslBEdrRGmT4aNWAWYvVYzyKDy3H0fzYdWwuA9goJUL4tj3eMJa8pgEU/
+rG3HfflVi+xuwm1UnLXPSIE8hixgV8ebnwcCnEjlUBvwpl7f5Ub40jKcdycdGvVu
+gcTUzuRl1+Ikfk/MXKPbdi4A5Pjtz6AG4Ez9q5j7X77JqskTI5Z/f1RPiKwFBJHg
+cN4+BPnEuSWGcjiNDOfQxhk5exlWRf/gpEhnQpGHe3a7tZgfxHUb/pWU9BYpf8OH
+vtV3WSDXlUqsEEH6/bmvj8lmFWJLmeZv+qLy1wHxcXR9/GJ6TwCF8niQIl3MrBAL
+sKPLft1drmpqdIQpZQIJxtN/AQuD9mxEdW7XA6rkvFySKcswJpS1QjkSWpafCBWE
+wu+SPxZL8oFrnNMTU3JloUjcRp70FkNXLLm/Dy+MjW2qFBtIoBgNptVGp94L1uZS
+amd2XJMcOQ+X9fcH3wAdM3IHGn3NiLf6eTW92JNNA0IN6aNtyVaJKmFJ1JfXOl9r
+ujr4SorRSesaerjIcuzW1u1YE5RlgeI4kizV2/D5kYc=
+-----END CERTIFICATE-----
diff --git a/mysql-test/std_data/server8k-key.pem b/mysql-test/std_data/server8k-key.pem
new file mode 100644
index 00000000000..608593a5096
--- /dev/null
+++ b/mysql-test/std_data/server8k-key.pem
@@ -0,0 +1,99 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIISKQIBAAKCBAEA1BZYf95sKL+WGiAhVznSV4B1f7g5E41wevaMZYqbIUGmD1/C
+w0+b4SN4D3IktWdbERNnU3AuDJNiuCw1CI6d1pHk3xQB2T1dxGPtzh/37R+DekhC
+AUyhOBGOmodJybVPfDNCYcToecx43us0KdUpAZ4RDkGHsWEaozrRpaGfUchdIhQF
+3MrtgKdeLt+5eWJWtHMj872aj+JhWJXF8GkXwGnCZqjDNb7kLxcdSSE1EwboDBd1
+RmdRdLcOtxCFB/xVv1lp3D6rxtfJ2uNKpb/WZAcNBYWXikvHCiSGOcuCd9I5/3lf
+KdZUzuyvgEk7hmVpnUQ4I1BtGPThrirDz6GhOppdB05zAbAUkH11KvV5MBrfA04D
+4qAChwR4y2yCxMuBTGFq5U2ZT08zasoWsnnP9k9eaA5WnTUreyaQy6V+9FBAlxYX
+RBsbBsbV3SmyAbzZtsk+F9p8VvSLbBAo0koA/veE4BqGvECg8K6ZoKvlqqZueAmd
+bzdaKsjFMNbIzRF/4iwchwI0gC28tin35OXJeZp7Eenf5OI7InN0LHIsJHfq0Lf/
+FTIUtp7N55Hs/wStxb0ANjLPMSYRS37M1awYZ43BUUzU9vvyjJa9aE+UNV2Si+6l
+V06Wmzy+dSZVQS+Qkh5dUEZH37Kn6nICZHBwavpCo1IhbOJWnYU67zQQl2GufjZA
+NkKiH3TqTcJetv4HRO/+81NboeNL5FSssy/gD5Cz8sDxFwTqUMiAzZIKF5ktdPiT
+A+OCu7mclJsWS+1u124t9DbhBa1Ts6FJlV4WqT26UJ5EB8Z/J7aij2F3QXL13Ais
+ieou/R9lZPXzOqwWIsDXBO0Mlqn3dkDI86++r3hdOLF5D0frRuWNZaxfWad72mxV
+0INkSbhgN61ejEdhhTV7goSGLuNdL4SITzbZnShFaCFWbBbLoPnbZ9Dwwha0fFRH
+f7LIadJ2jWvQHdZWPpmqyZDiTlaT4ArNsiQzwFAf2Hb0ieGr1umXbzU8IQS/HxCT
+Etg0qpGmugN/ov0qiE6VPE6CcbDBmoAbC4nl4LyQCxcrEkX0f9nZhLvfydDz3NvI
+px18I4i2/fVSpZLhM/MF/VJLqKhZdKS2vI65TPIc3T0PUB295PXOZJ34DwmJDiFs
+Blx/jcADR3UESuwphgBVduJPfj96tIOYpGm1R6/uGUN1j3ftRytPjLG2/77+d7xS
+VmvqWHjXhXMDQsltpCQUzIiOqppS+CFgnF/kA86US2pWwFlh45eWZN/UBGgi9NuA
+2CvePCA1wqg4OrrRLO2JzHWiBdJnmDCo3oWRadH1UPHvDnfq6W243Y/8OtMDIAaU
+jnmMVa7N0CjWXf4n+AM9y4IKFRwdPUo1yolqbwIDAQABAoIEAQDI3u0tFoWMRoCs
+99d8HLiaxYED2YC9gw2QeKjal198LQhRsVnu0ByMLKLOxkX8RgrbbmxDe5Exufob
+A0urciAOFJoXqoRhs5x2oEqgGmkf/ePx0jQptOFREFfnBdGeKIpC0O3DWdLxYPbt
+8wixwkEXVhVDUk9pcdXf2ZqsbBpQRBvpZdtzlgNCAcLTVHP/gmMqf48CkIauVjPq
+ydfybibfx4sm3hodclH+Q78p/zicb8MhiKo7ZymgCKz4N743pQe1tsLrpbPeHY0C
+MpoFyF8O2Bq+KxwvELxQX+19GcHVKJhj3hmCr4wde9BxCWtGTBCusekVkVvy8iQ5
+aCmTIrtonMEVZXjJlXK0sw5hBKOmKx0jrSVC5FfgdxzNVlW4fCJXLEEpMsjMc+/3
+6bV7jqGn4N5CYaopNS2ccxdaucE3NjcmofahO6bqUTJHSPFecfYmCA42W2m+ldjj
+HZ78JLkyw03nT1hjPjbwHf5FTem1KfKg4EJrDprowMT7D8KZb0SW+z59pFoDOM5u
+Heu6sOSUtvpvKfozdw2ZAI58dhpW4/jTfCEtewRhPqE3/V7g3haTnQFxU8gm/a4N
+uefZTCjFE16QWNuvnUrJWw/DlvOBY8GjpQCWY0mDeBHPNOI0Xg9oRTgOCrKSLUya
+YSbg6BmhSKwKsYQU834jrQb3fXFlXZVIxlcNePOWMhHFFNAHucHF822Nr7u/3FOT
+twcbBIOXCGfDT6ed8d4dNum1L7k9Blju16CWkfuciL8PGXY4mGAmF4nZMXGZgK8B
+Cz9cxhtvFLe8gz5615DtBAsuVm7Q4AAHiULAMg6t6auyxCb8pXbAL0Ec5X4zS3+f
+I2riODYiyHCh/qTtjawOzUZZEtjZRMSDi+jk8wjjDdkFU8McOaYoPyqT3TDy2v6m
+NiPJs8GWQ2NCNo9CNoGbEIIFFP5iSz18XLFAOF+2dN/KHHl9nKyi7kOhYbbzoNku
+2wQV40yVsrS4E/hd/7+2IB2Muduxiu7NxCUSUXsw6p0hZTYMpIoduEfRSk1al0lS
+862GD8JgJ4RhJ0uIOTDJS52MQmO8zFIL86emdjjV1CzVvadYSQLTX7ZgR0i8g46A
+y0muCFAC8EJpnEtHzqtQ/z22zB8TCJShFuUK9KF6K8nOlbc6ShcUXU2J6r1sc8aT
+Dx0yzRXfCL15fpCJBP49EYaKhArTNmFRa2GaLiJP0OYkTrrwVOGuS6x2+kRVoP/8
+BcNMZ5x8mXP1LgotHCztgMKX30Hn5CLxbH8QfcWKemGva1jBmhCWxS17Gh3Ld9T3
+/WKkBa6JDq83rlO84x/iF3mB3tYkZPfcYtYURn5wwm/BmVV/9G1VwAatJdxmfCSy
+5JwC9WDBAoICAQD7xStPk3lq+qYHAtLZidujmzSNv7XG+E8UC9yvMRFuBwSM5ZE4
+YGD2LDev2nghB+7OSR8KJIkxeaNjP91Zf3s8wjCuxLg/cLGI6mf6uWy9+zypFg3i
+J+ylDKa6NBuqYyY75W7Pj63xvGQlw5kX5+mB3ulQbActT4cUiVdEkyDytzubqLzY
+s15QGFrL9gqLow+C+7LKQKdeXq8OavFV1PWkMDAJUki6cIir9m+f5Mqr2cQCLKgx
+38aX8c9UWJv6pI5zQQuBjpaBOwz07WnyTXiFpc71x/8i85uLGDM0e3VO5ZPGeRBj
+jZ0ucHatOHJ3i/nPRG16rsPR+q97QiDHoLF0quHEG+ND+rwTBzNGIwzYRE16p1o3
+UdzFk1RzlDCfOX7QgszCwK6mf8TbCK9f/FxJ5e6TCkt3iHXSrlLS4op6k9nEpKFH
+KHf4nPtCy9GriP+A8+dA6K1s+DgejoIojBMBTsnl4TEf+m8BaenTXGuU7KYyc8dR
+JqmpmDggDRT/ImHRhXirY7lIIYXnI7tRjN5gmnKpEiHScT1r848zpQ4gWH1Dx/ks
+mKT6NZ8nF45saQCYbKEYc0RH9Kw0O7vr1kVtNPc2dEZtVgt4bC5fnl7xX1/YTk3m
++h1qfzbku/+MX5rRjHLR2l8a71UltlnnnpP5NKBBgtxll6aCIkk6CdH8YQKCAgEA
+16aBaVa0cOZmiOQwPQkpuXIbV7msz1ttWEAHElCy6waniOCON89PYFCb7F0NjV3Q
+i+pGaRgG1iZGbjjHwyqTrHhMloFm+IsSWZqOZzrHgSJgA4bgTJFgp+5b31sQXGfJ
+14QQSqMJLC61/M+CnrNtiuI3IVHx6BFRxI42uE7PfTyUMaFhL9F0/SLl0Mw0oMPj
+S5kmarduuKpRn1tN9WO+ywEvYwopvH3e9PBssZzPpttlLiE/Wulb0iEtlVXYB9DS
+Vzc94N2dzFMIvWUDF9BQ+IBMRzXRm15Psy6LfzoK+9S6w38Dx3BVV8ykSMKeW1UR
+ZwTajjdnIBLdE3onD5XMmrSOPw/WtV5zXEYY4DObhIPoN2iD8GJP0IubPb6fonH5
+VHmuVZoXrroFEe7rdt2wgmBdPPl6fqvBKVhjJOpYQctrFLgWh63bXZKaBWqbQM9W
+fECq8We1VN3fzqwfwJQit3z5R/DjQNk8eQx7SnnkOzAY6ZgpysHCwaoPOnPVuiYF
+ZU0+X3iwfsdeefWmGEDIzoZk6nYaljs61lOhhEoWHngZHDkMOp5kg0n9f8BUP02+
+WJ4QhwzZ73hr4FPBuPHHXECw9TCAgCBHBFrnrXg5QalDhRXz4F+3tCY7UUpD/ikZ
+L6Daxm5zGJ5u3rXs6WwKy2EHVVS9zfqs4Q259pQdWM8CggIAcIKpGzOVM+h033c0
+kIBZxeAq+Rlt+0+lzxiJ80RjPJ8oOmqwndf8HKaf8BcaTfCEmGz20QqIwLJSAJ1e
+posgoINLTB6fE8Kho8TU2KeaX7/xWMKBS8p5pzxjGZ0Fq/wI7wVVoq3blsaQnout
+U5CQujfKXeUYw/fhLp09gWiadbzKh4I9ej2V7QclNDZsegBRg0BForqH0NVRN4k0
+9h1n9IqQPOonlCGMAgTr1zFgHLIBNNOOClOtJOOruk6qzbRR8FFl+eyld3TTEnUy
+PlS+gkMZnJ5WduEUZnFXGKH/R1Wy1yPs3gA/+KvLbRdnl+LWrPgwUH3fBmwXlWZ0
+zaETDEb9Ay1PP2bCO2KhWDt7lv3W/fPhjg0oMqbnO4tCuzTvZfC93l5K7h708skL
+zkIxX9i/57fXB8DUnmTGoHUaWzLNQ2IqrGj6TACjDDOXLCfZvl/AvTH9pk+6jHU0
+1zfZmmECOpeK43Z/ussA8jI/5Vpn3u38aVh0w1RB6JjQBD/yJLaXuUekWgaZFzTR
+ldz014jNqp5uvONcBmzeVr7w9CV3PR4VTQed2i6yQ770J6A44uTQjOOd5OYDOohj
+Lz4e4nGj9BK8Eko8cAEwLAzS8tyjMT+08n5dPOVCu68DwVBMGE7CVONYUuoXS/YU
+cTxddiU9ZGk9Yq0FfOwjeys+SqECggIAdn3M2b6Egwx2Bn2ra74fKQBjub4SEBWi
+bT0xJYUl6jHL2E/alRvZ94gTRLqUebq0nkxpx9El4IFDbcjRKpG4dqnbG0+a7rIr
+sQRVfq8zc+cZbparpCa1P1CfNojo4n080KiF8xzGK3q3EGRM1zqr1AYcWLiX/PWX
+QjMKKhdTtvKUUvjjV8z1RSnpsOKjgDpiJ+XM0BJeSiV7l94pZc4axZyvFvI8oI9g
+9KEueCE7j+k5HTGziBZ1F26Xh1iVzSWWjcmSvH3I+L4fLUHVgz45X3HPd8lAlOgr
+Tr8icxPHeTwYKtcdknZMzmNpWXlmXbTOTRbDqCUVCvCSfOM/lzauJ8tR5aCkTx/I
+r0js3jQ9HYEFFXzeEjVSubob4L9fI3kQkLQTcIGsxZr8si/fPX7uP5UHZjuGbRee
+mUMxptUFDZHiEo5cAs0qna2x54v+JoxGbxtxUhez8R/Am+TDxaMfuEZ5Cmh31egH
+bFPJYtC68TKqXZ/4RqpUgukYWPvQ0emWSWU6AmdkQyT06nppeyYNsDz0MkgWr7l3
+yNBHDVNP+Anxcip+Z68kd2cuXQWmxOnIzxR67FnJXeWDEM20whRHgI8jLHYsBTq3
+CtOQPSaz/zosGXJIgF7Xp6riKPZvibW3Ww49Z47EuyBCtyirNk7hV4LG7sITUJyO
+ZVKPfcdAoM0CggIBANz3EBZGyt3af2UjFFKbazV01KcHF8OxqdQzsLqHCXWb98V6
+PggQnrF76U7DvqOWho9djDBPrbQU55HG5nXq+eZKPwhsOdwQ8bxOhaVxQcATZOI7
+FtJYnjM1/+zMzzS0iPR5DA2pbB3AKH2Z+wODmF23CK2XTwoJyPKxvlyGKrIqq3gN
+kOmocNu2Qm5bJf+D/hYPm5Ust2wzD52NnvJU536bZ0ZMo1/kaK2idqSAzqo4TkR1
+j9U0fdW2rIBDo/qFmBBdJhYVjYLj4qR8CEEoIjshD4Nztf1xRM5C8irE/gJcT5+r
+4bPJJ5TjAtHxPiQqZruSprSEUbMsPqBap64ow0SmbNNWSgyaz2ha1rG0p52NBzH4
+XM52LBqS9QHPHvB0ooYfBTfPpDM3CePuuNyzjPAw86ncUo38FKXuc2oViJJ6C5I7
+v2sKhLK5gu3uPBB2ludDEXSpWBqiraynolOT/o52r+taYp9YY2WU3GrhOiV/A1FV
+Nl118xiF6FOFpEeTbhHvy27A8kZEKXgeSs+f4aC0XG9kLVD1CiCbQiqHTDcDS4nV
+O1N1eQxhP81X+YKE4Lgufh07REqYVwtCj2lQcMp73WDyfBLKTEFlmHusoqmT5JCH
+X0BWNjk5Dn1g5h63/lQb+EjNRILBhDFYhrDRDQtw5p0/7IY3AcNKDUHv+XGn
+-----END RSA PRIVATE KEY-----
diff --git a/mysql-test/t/ssl_8k_key.test b/mysql-test/t/ssl_8k_key.test
new file mode 100644
index 00000000000..b4203e68445
--- /dev/null
+++ b/mysql-test/t/ssl_8k_key.test
@@ -0,0 +1,6 @@
+-- source include/have_ssl.inc
+#
+# Bug#29784 YaSSL assertion failure when reading 8k key.
+#
+--exec $MYSQL --ssl --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem -e "SHOW STATUS LIKE 'ssl_Cipher'" 2>&1
+
From 100faf97c4f8472180cd12211a902b8c2d4be913 Mon Sep 17 00:00:00 2001
From: "ramil/ram@mysql.com/ramil.myoffice.izhnet.ru" <>
Date: Wed, 18 Jul 2007 12:13:45 +0500
Subject: [PATCH 02/29] Fix for bug #28125: ERROR 2013 when adding index.
Problem: we may break a multibyte char sequence using a key
reduced to maximum allowed length for a storage engine
(that leads to failed assertion in the innodb code,
see also #17530).
Fix: align truncated key length to multibyte char boundary.
---
mysql-test/r/innodb_mysql.result | 14 +++++++++++++-
mysql-test/t/innodb_mysql.test | 9 +++++++++
sql/sql_table.cc | 6 ++++--
3 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result
index 4535710c905..4c1e7189998 100644
--- a/mysql-test/r/innodb_mysql.result
+++ b/mysql-test/r/innodb_mysql.result
@@ -418,7 +418,7 @@ DROP TABLE t1,t2;
create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb
character set utf8 collate utf8_general_ci;
Warnings:
-Warning 1071 Specified key was too long; max key length is 765 bytes
+Warning 1071 Specified key was too long; max key length is 767 bytes
insert into t1 values('aaa');
drop table t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b INT, c FLOAT, KEY b(b)) ENGINE = INNODB;
@@ -735,4 +735,16 @@ COUNT(*)
3072
set @@sort_buffer_size=default;
DROP TABLE t1,t2;
+create table t1(a text) engine=innodb default charset=utf8;
+insert into t1 values('aaa');
+alter table t1 add index(a(1024));
+Warnings:
+Warning 1071 Specified key was too long; max key length is 767 bytes
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` text,
+ KEY `a` (`a`(255))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8
+drop table t1;
End of 5.0 tests
diff --git a/mysql-test/t/innodb_mysql.test b/mysql-test/t/innodb_mysql.test
index d4ce997ddb1..4930ec81a62 100644
--- a/mysql-test/t/innodb_mysql.test
+++ b/mysql-test/t/innodb_mysql.test
@@ -741,4 +741,13 @@ set @@sort_buffer_size=default;
DROP TABLE t1,t2;
+#
+# Bug #28125: ERROR 2013 when adding index.
+#
+create table t1(a text) engine=innodb default charset=utf8;
+insert into t1 values('aaa');
+alter table t1 add index(a(1024));
+show create table t1;
+drop table t1;
+
--echo End of 5.0 tests
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 87f23097a66..0da639f9896 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -1357,6 +1357,8 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
length);
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
ER_TOO_LONG_KEY, warn_buff);
+ /* Align key length to multibyte char boundary */
+ length-= length % sql_field->charset->mbmaxlen;
}
else
{
@@ -1387,8 +1389,6 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
if (length > file->max_key_part_length() && key->type != Key::FULLTEXT)
{
length= file->max_key_part_length();
- /* Align key length to multibyte char boundary */
- length-= length % sql_field->charset->mbmaxlen;
if (key->type == Key::MULTIPLE)
{
/* not a critical problem */
@@ -1397,6 +1397,8 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
length);
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
ER_TOO_LONG_KEY, warn_buff);
+ /* Align key length to multibyte char boundary */
+ length-= length % sql_field->charset->mbmaxlen;
}
else
{
From 832fd24c41126b79312b26af7ec604fa0027010b Mon Sep 17 00:00:00 2001
From: "cmiller@zippy.cornsilk.net" <>
Date: Wed, 18 Jul 2007 14:03:58 -0400
Subject: [PATCH 03/29] Bug#26909: Specified key was too long; max key length
is 255 bytes \ when creating table
Federated tables had an artificially low maximum of key length,
because the handler failed to implement a method to return it and
the default value is taked from the prototype handler.
Now, implement that method and return the maximum possible key
length, which is that of InnoDB.
---
mysql-test/r/federated.result | 37 ++++++++++++++++++++++++++++++++
mysql-test/t/federated.test | 40 +++++++++++++++++++++++++++++++++++
sql/ha_federated.h | 4 +++-
3 files changed, 80 insertions(+), 1 deletion(-)
diff --git a/mysql-test/r/federated.result b/mysql-test/r/federated.result
index cecffbb1471..b69ff8033d4 100644
--- a/mysql-test/r/federated.result
+++ b/mysql-test/r/federated.result
@@ -1843,6 +1843,43 @@ C3A4C3B6C3BCC39F
D18DD184D184D0B5D0BAD182D0B8D0B2D0BDD183D18E
drop table federated.t1;
drop table federated.t1;
+CREATE TABLE federated.t1 (
+categoryId int(11) NOT NULL AUTO_INCREMENT,
+domainId varchar(745) NOT NULL DEFAULT '',
+categoryName varchar(255) NOT NULL DEFAULT '',
+PRIMARY KEY (categoryId),
+UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
+KEY idx_category_domainId (domainId)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+CREATE TABLE federated.t1 (
+categoryId int(11) NOT NULL AUTO_INCREMENT,
+domainId varchar(745) NOT NULL DEFAULT '',
+categoryName varchar(255) NOT NULL DEFAULT '',
+PRIMARY KEY (categoryId),
+UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
+KEY idx_category_domainId (domainId)
+) ENGINE=FEDERATED DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+insert into federated.t1 (domainId, categoryName) values ( '1231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231 300', '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 250');
+insert into federated.t1 (domainId, categoryName) values ( '12312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312 301', '12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 250');
+insert into federated.t1 (domainId, categoryName) values ('a', 'b');
+select categoryId from federated.t1 order by domainId, categoryName;
+categoryId
+1
+2
+3
+select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
+categoryId
+3
+select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
+categoryId
+3
+select categoryId from federated.t1 where domainId<>'a' and categoryName<>'b' order by categoryId;
+categoryId
+1
+2
+drop table federated.t1;
+drop table federated.t1;
DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1;
diff --git a/mysql-test/t/federated.test b/mysql-test/t/federated.test
index 894cd513914..e3c7d478c78 100644
--- a/mysql-test/t/federated.test
+++ b/mysql-test/t/federated.test
@@ -1575,5 +1575,45 @@ drop table federated.t1;
connection slave;
drop table federated.t1;
+#
+# Bug#26909: Specified key was too long; max key length is 255 bytes
+# when creating a table
+#
+connection slave;
+CREATE TABLE federated.t1 (
+ categoryId int(11) NOT NULL AUTO_INCREMENT,
+ domainId varchar(745) NOT NULL DEFAULT '',
+ categoryName varchar(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (categoryId),
+ UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
+ KEY idx_category_domainId (domainId)
+ ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ categoryId int(11) NOT NULL AUTO_INCREMENT,
+ domainId varchar(745) NOT NULL DEFAULT '',
+ categoryName varchar(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (categoryId),
+ UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
+ KEY idx_category_domainId (domainId)
+ ) ENGINE=FEDERATED DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+
+insert into federated.t1 (domainId, categoryName) values ( '1231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231 300', '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 250');
+insert into federated.t1 (domainId, categoryName) values ( '12312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312 301', '12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 250');
+insert into federated.t1 (domainId, categoryName) values ('a', 'b');
+
+select categoryId from federated.t1 order by domainId, categoryName;
+select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
+select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
+select categoryId from federated.t1 where domainId<>'a' and categoryName<>'b' order by categoryId;
+
+drop table federated.t1;
+
+connection slave;
+drop table federated.t1;
source include/federated_cleanup.inc;
diff --git a/sql/ha_federated.h b/sql/ha_federated.h
index 09c934cb493..9f24e92357c 100644
--- a/sql/ha_federated.h
+++ b/sql/ha_federated.h
@@ -37,6 +37,7 @@
#define FEDERATED_QUERY_BUFFER_SIZE STRING_BUFFER_USUAL_SIZE * 5
#define FEDERATED_RECORDS_IN_RANGE 2
+#define FEDERATED_MAX_KEY_LENGTH 3500 // Same as innodb
#define FEDERATED_INFO " SHOW TABLE STATUS LIKE "
#define FEDERATED_INFO_LEN sizeof(FEDERATED_INFO)
#define FEDERATED_SELECT "SELECT "
@@ -217,7 +218,8 @@ public:
uint max_supported_record_length() const { return HA_MAX_REC_LENGTH; }
uint max_supported_keys() const { return MAX_KEY; }
uint max_supported_key_parts() const { return MAX_REF_PARTS; }
- uint max_supported_key_length() const { return MAX_KEY_LENGTH; }
+ uint max_supported_key_length() const { return FEDERATED_MAX_KEY_LENGTH; }
+ uint max_supported_key_part_length() const { return FEDERATED_MAX_KEY_LENGTH; }
/*
Called in test_quick_select to determine if indexes should be used.
Normally, we need to know number of blocks . For federated we need to
From 4a52b5c88547a01f33b2566d4503f6eef7f082bc Mon Sep 17 00:00:00 2001
From: "ramil/ram@mysql.com/ramil.myoffice.izhnet.ru" <>
Date: Fri, 20 Jul 2007 11:23:38 +0500
Subject: [PATCH 04/29] Fixed #29923: federated.test fails in 5.0-maint,
5.1-maint
Result adjusted.
---
mysql-test/r/federated.result | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mysql-test/r/federated.result b/mysql-test/r/federated.result
index 076e165b21e..56522ba2f50 100644
--- a/mysql-test/r/federated.result
+++ b/mysql-test/r/federated.result
@@ -1878,6 +1878,8 @@ select categoryId from federated.t1 where domainId<>'a' and categoryName<>'b' or
categoryId
1
2
+drop table federated.t1;
+drop table federated.t1;
create table federated.t1 (a int primary key, b varchar(64))
DEFAULT CHARSET=utf8;
create table federated.t1 (a int primary key, b varchar(64))
From 4a2a13158e2fd600034455228222fbcf5eaa82cc Mon Sep 17 00:00:00 2001
From: "ramil/ram@mysql.com/ramil.myoffice.izhnet.ru" <>
Date: Fri, 20 Jul 2007 15:37:42 +0500
Subject: [PATCH 05/29] after-merge fixup
---
mysql-test/r/innodb_mysql.result | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result
index f44ce5b5122..a7f6b0ad9d7 100644
--- a/mysql-test/r/innodb_mysql.result
+++ b/mysql-test/r/innodb_mysql.result
@@ -735,6 +735,10 @@ COUNT(*)
3072
set @@sort_buffer_size=default;
DROP TABLE t1,t2;
+drop table if exists t1;
+create table t1 (a int) engine=innodb;
+alter table t1 alter a set default 1;
+drop table t1;
create table t1(a text) engine=innodb default charset=utf8;
insert into t1 values('aaa');
alter table t1 add index(a(1024));
@@ -746,8 +750,5 @@ t1 CREATE TABLE `t1` (
`a` text,
KEY `a` (`a`(255))
) ENGINE=InnoDB DEFAULT CHARSET=utf8
-drop table if exists t1;
-create table t1 (a int) engine=innodb;
-alter table t1 alter a set default 1;
drop table t1;
End of 5.0 tests
From e3a821543047dc773ee4a4f53b439f0957110be5 Mon Sep 17 00:00:00 2001
From: "malff/marcsql@weblab.(none)" <>
Date: Mon, 23 Jul 2007 16:23:35 -0600
Subject: [PATCH 06/29] Bug#29959 (Non-standard bison syntax in sql_yacc.yy)
In sql/sql_yacc.yy, use the %prec construct at the end of rule join_table
---
sql/sql_yacc.yy | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 6fbd521e302..d71e756e91c 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -5567,7 +5567,7 @@ join_table:
so that [INNER | CROSS] JOIN is properly nested as other
left-associative joins.
*/
- table_ref %prec TABLE_REF_PRIORITY normal_join table_ref
+ table_ref normal_join table_ref %prec TABLE_REF_PRIORITY
{ MYSQL_YYABORT_UNLESS($1 && ($$=$3)); }
| table_ref STRAIGHT_JOIN table_factor
{ MYSQL_YYABORT_UNLESS($1 && ($$=$3)); $3->straight=1; }
From ad0c033b84251c3427d3f9fc0ee5c258f317e1e2 Mon Sep 17 00:00:00 2001
From: "omer@linux.site" <>
Date: Tue, 24 Jul 2007 21:31:25 -0700
Subject: [PATCH 07/29] Updated/fixed test and result files to 5.0.46 Note
datadict files do not include wrong is_updatable wrong value as a result
of bug 30020.
---
.../funcs_1/datadict/datadict_master.inc | 15 +-
.../suite/funcs_1/r/innodb__datadict.result | 3 +-
.../suite/funcs_1/r/innodb_func_view.result | 332 +++++++-----------
.../suite/funcs_1/r/innodb_trig_0102.result | 2 +-
.../suite/funcs_1/r/innodb_trig_08.result | 5 +-
.../suite/funcs_1/r/innodb_trig_09.result | 2 +-
.../suite/funcs_1/r/innodb_views.result | 3 +-
.../suite/funcs_1/r/memory__datadict.result | 3 +-
.../suite/funcs_1/r/memory_func_view.result | 332 +++++++-----------
.../suite/funcs_1/r/memory_trig_0102.result | 2 +-
.../suite/funcs_1/r/memory_trig_08.result | 5 +-
.../suite/funcs_1/r/memory_trig_09.result | 2 +-
.../suite/funcs_1/r/memory_views.result | 3 +-
.../suite/funcs_1/r/myisam__datadict.result | 3 +-
.../suite/funcs_1/r/myisam_func_view.result | 332 +++++++-----------
.../suite/funcs_1/r/myisam_trig_0102.result | 2 +-
.../suite/funcs_1/r/myisam_trig_08.result | 5 +-
.../suite/funcs_1/r/myisam_trig_09.result | 2 +-
.../suite/funcs_1/r/myisam_views.result | 3 +-
.../suite/funcs_1/triggers/triggers_0102.inc | 2 +-
mysql-test/suite/funcs_1/views/func_view.inc | 3 +-
21 files changed, 402 insertions(+), 659 deletions(-)
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_master.inc b/mysql-test/suite/funcs_1/datadict/datadict_master.inc
index 03d3eeb3777..2c8ceb4e68e 100644
--- a/mysql-test/suite/funcs_1/datadict/datadict_master.inc
+++ b/mysql-test/suite/funcs_1/datadict/datadict_master.inc
@@ -437,19 +437,23 @@ eval SELECT *
# check also with a 'simple' user
CREATE USER user_3212@localhost;
GRANT ALL ON db_datadict.* TO user_3212@localhost;
+# OBN: The following line was added following the fix to bug 28181
+# where queries to information_schema will fail if exporting to
+# a file without having the FILE attribute
+GRANT FILE ON *.* TO user_3212@localhost;
+
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
connect (u3212,localhost,user_3212,,db_datadict);
--source suite/funcs_1/include/show_connection.inc
# no db given --> db_datadict.schema does not exist
---error 1045
+--error 1146
eval SELECT *
INTO OUTFILE '../tmp/out.$ENGINE_TYPE.user.file'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM schemata LIMIT 0, 5;
-# FIXME 3.2.1.2: why do we get different error numbers with and without OUTFILE ?
--error 1146
eval SELECT *
FROM schemata LIMIT 0, 5;
@@ -460,8 +464,6 @@ eval SELECT *
LINES TERMINATED BY '\n'
FROM information_schema.schemata
WHERE schema_name LIKE 'db_%';
-# The above will fail with access error as long as
-# BUBG#28181 - a regression introduced in 5.0.42 is not fixed
eval SELECT *
FROM information_schema.schemata
@@ -469,14 +471,11 @@ eval SELECT *
USE information_schema;
-# no db given --> db_datadict.schema does not exist
eval SELECT *
INTO OUTFILE '../tmp/out.$ENGINE_TYPE.user_2.file'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM schemata LIMIT 0, 5;
-# The above will fail with access error as long as
-# BUBG#28181 - a regression introduced in 5.0.42 is not fixed
eval SELECT *
FROM schemata LIMIT 0, 5;
@@ -487,8 +486,6 @@ eval SELECT *
LINES TERMINATED BY '\n'
FROM information_schema.schemata
WHERE schema_name LIKE 'db_%';
-# The above will fail with access error as long as
-# BUBG#28181 - a regression introduced in 5.0.42 is not fixed
eval SELECT *
FROM information_schema.schemata
diff --git a/mysql-test/suite/funcs_1/r/innodb__datadict.result b/mysql-test/suite/funcs_1/r/innodb__datadict.result
index 675f30da14a..bbaef83ea59 100644
--- a/mysql-test/suite/funcs_1/r/innodb__datadict.result
+++ b/mysql-test/suite/funcs_1/r/innodb__datadict.result
@@ -4859,6 +4859,7 @@ INTO OUTFILE '../tmp/out.innodb.db.file'
WHERE schema_name LIKE 'db_%';
CREATE USER user_3212@localhost;
GRANT ALL ON db_datadict.* TO user_3212@localhost;
+GRANT FILE ON *.* TO user_3212@localhost;
connect(localhost,user_3212,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
user_3212@localhost db_datadict
@@ -4867,7 +4868,7 @@ INTO OUTFILE '../tmp/out.innodb.user.file'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM schemata LIMIT 0, 5;
-ERROR 28000: Access denied for user 'user_3212'@'localhost' (using password: NO)
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
SELECT *
FROM schemata LIMIT 0, 5;
ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
diff --git a/mysql-test/suite/funcs_1/r/innodb_func_view.result b/mysql-test/suite/funcs_1/r/innodb_func_view.result
index 5fac88b8f14..f901bcf8246 100644
--- a/mysql-test/suite/funcs_1/r/innodb_func_view.result
+++ b/mysql-test/suite/funcs_1/r/innodb_func_view.result
@@ -2400,16 +2400,10 @@ my_time, id FROM t1_values
WHERE select_id = 89 OR select_id IS NULL;
CAST(my_time AS UNSIGNED INTEGER) my_time id
NULL NULL 1
-18446744073709550778 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1105 Cast to unsigned converted negative integer to it's positive complement
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+18446744073701165657 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as unsigned) AS `CAST(my_time AS UNSIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2418,16 +2412,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 89 OR select_id IS NULL);
CAST(my_time AS UNSIGNED INTEGER) my_time id
NULL NULL 1
-18446744073709550778 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1105 Cast to unsigned converted negative integer to it's positive complement
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+18446744073701165657 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
DROP VIEW v1;
@@ -2438,16 +2426,10 @@ my_timestamp, id FROM t1_values
WHERE select_id = 88 OR select_id IS NULL;
CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as unsigned) AS `CAST(my_timestamp AS UNSIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2456,16 +2438,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 88 OR select_id IS NULL);
CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2476,15 +2452,10 @@ my_date, id FROM t1_values
WHERE select_id = 87 OR select_id IS NULL;
CAST(my_date AS UNSIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as unsigned) AS `CAST(my_date AS UNSIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2493,15 +2464,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 87 OR select_id IS NULL);
CAST(my_date AS UNSIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
DROP VIEW v1;
@@ -2512,15 +2478,10 @@ my_datetime, id FROM t1_values
WHERE select_id = 86 OR select_id IS NULL;
CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as unsigned) AS `CAST(my_datetime AS UNSIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2529,15 +2490,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 86 OR select_id IS NULL);
CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2780,15 +2736,10 @@ my_time, id FROM t1_values
WHERE select_id = 78 OR select_id IS NULL;
CAST(my_time AS SIGNED INTEGER) my_time id
NULL NULL 1
--838 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+-8385959 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as signed) AS `CAST(my_time AS SIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2797,15 +2748,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 78 OR select_id IS NULL);
CAST(my_time AS SIGNED INTEGER) my_time id
NULL NULL 1
--838 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+-8385959 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
DROP VIEW v1;
@@ -2816,16 +2762,10 @@ my_timestamp, id FROM t1_values
WHERE select_id = 77 OR select_id IS NULL;
CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as signed) AS `CAST(my_timestamp AS SIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2834,16 +2774,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 77 OR select_id IS NULL);
CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2854,15 +2788,10 @@ my_date, id FROM t1_values
WHERE select_id = 76 OR select_id IS NULL;
CAST(my_date AS SIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as signed) AS `CAST(my_date AS SIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2871,15 +2800,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 76 OR select_id IS NULL);
CAST(my_date AS SIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
DROP VIEW v1;
@@ -2890,15 +2814,10 @@ my_datetime, id FROM t1_values
WHERE select_id = 75 OR select_id IS NULL;
CAST(my_datetime AS SIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as signed) AS `CAST(my_datetime AS SIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2907,15 +2826,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 75 OR select_id IS NULL);
CAST(my_datetime AS SIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2926,8 +2840,8 @@ my_decimal, id FROM t1_values
WHERE select_id = 74 OR select_id IS NULL;
CAST(my_decimal AS SIGNED INTEGER) my_decimal id
NULL NULL 1
--10000000000000000 -9999999999999999999999999999999999.999999999999999999999999999999 2
-10000000000000000 9999999999999999999999999999999999.999999999999999999999999999999 3
+-9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9223372036854775807 9999999999999999999999999999999999.999999999999999999999999999999 3
0 0.000000000000000000000000000000 4
-1 -1.000000000000000000000000000000 5
Warnings:
@@ -2941,8 +2855,8 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 74 OR select_id IS NULL);
CAST(my_decimal AS SIGNED INTEGER) my_decimal id
NULL NULL 1
--10000000000000000 -9999999999999999999999999999999999.999999999999999999999999999999 2
-10000000000000000 9999999999999999999999999999999999.999999999999999999999999999999 3
+-9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9223372036854775807 9999999999999999999999999999999999.999999999999999999999999999999 3
0 0.000000000000000000000000000000 4
-1 -1.000000000000000000000000000000 5
Warnings:
@@ -3115,12 +3029,12 @@ Warning 1292 Truncated incorrect INTEGER value: ' ---
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL(37,2)),
my_year, id FROM t1_values;
-SELECT CAST(my_year AS DECIMAL),
+SELECT CAST(my_year AS DECIMAL(37,2)),
my_year, id FROM t1_values
WHERE select_id = 68 OR select_id IS NULL;
-CAST(my_year AS DECIMAL) my_year id
+CAST(my_year AS DECIMAL(37,2)) my_year id
NULL NULL 1
1901.00 1901 2
2155.00 2155 3
@@ -3128,11 +3042,11 @@ NULL NULL 1
2005.00 2005 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as decimal) AS `CAST(my_year AS DECIMAL)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as decimal(37,2)) AS `CAST(my_year AS DECIMAL(37,2))`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 68 OR select_id IS NULL);
-CAST(my_year AS DECIMAL) my_year id
+CAST(my_year AS DECIMAL(37,2)) my_year id
NULL NULL 1
1901.00 1901 2
2155.00 2155 3
@@ -3141,12 +3055,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_time AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_time AS DECIMAL(37,2)),
my_time, id FROM t1_values;
-SELECT CAST(my_time AS DECIMAL),
+SELECT CAST(my_time AS DECIMAL(37,2)),
my_time, id FROM t1_values
WHERE select_id = 67 OR select_id IS NULL;
-CAST(my_time AS DECIMAL) my_time id
+CAST(my_time AS DECIMAL(37,2)) my_time id
NULL NULL 1
-8385959.00 -838:59:59 2
8385959.00 838:59:59 3
@@ -3154,11 +3068,11 @@ NULL NULL 1
100000.00 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as decimal) AS `CAST(my_time AS DECIMAL)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as decimal(37,2)) AS `CAST(my_time AS DECIMAL(37,2))`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 67 OR select_id IS NULL);
-CAST(my_time AS DECIMAL) my_time id
+CAST(my_time AS DECIMAL(37,2)) my_time id
NULL NULL 1
-8385959.00 -838:59:59 2
8385959.00 838:59:59 3
@@ -3167,12 +3081,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DECIMAL(37,2)),
my_timestamp, id FROM t1_values;
-SELECT CAST(my_timestamp AS DECIMAL),
+SELECT CAST(my_timestamp AS DECIMAL(37,2)),
my_timestamp, id FROM t1_values
WHERE select_id = 66 OR select_id IS NULL;
-CAST(my_timestamp AS DECIMAL) my_timestamp id
+CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id
0.00 0000-00-00 00:00:00 1
19700101030001.00 1970-01-01 03:00:01 2
20380101025959.00 2038-01-01 02:59:59 3
@@ -3180,11 +3094,11 @@ CAST(my_timestamp AS DECIMAL) my_timestamp id
20050628100000.00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as decimal) AS `CAST(my_timestamp AS DECIMAL)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as decimal(37,2)) AS `CAST(my_timestamp AS DECIMAL(37,2))`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 66 OR select_id IS NULL);
-CAST(my_timestamp AS DECIMAL) my_timestamp id
+CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id
0.00 0000-00-00 00:00:00 1
19700101030001.00 1970-01-01 03:00:01 2
20380101025959.00 2038-01-01 02:59:59 3
@@ -3193,12 +3107,12 @@ CAST(my_timestamp AS DECIMAL) my_timestamp id
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_date AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_date AS DECIMAL(37,2)),
my_date, id FROM t1_values;
-SELECT CAST(my_date AS DECIMAL),
+SELECT CAST(my_date AS DECIMAL(37,2)),
my_date, id FROM t1_values
WHERE select_id = 65 OR select_id IS NULL;
-CAST(my_date AS DECIMAL) my_date id
+CAST(my_date AS DECIMAL(37,2)) my_date id
NULL NULL 1
10101.00 0001-01-01 2
99991231.00 9999-12-31 3
@@ -3206,11 +3120,11 @@ NULL NULL 1
20050628.00 2005-06-28 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as decimal) AS `CAST(my_date AS DECIMAL)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as decimal(37,2)) AS `CAST(my_date AS DECIMAL(37,2))`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 65 OR select_id IS NULL);
-CAST(my_date AS DECIMAL) my_date id
+CAST(my_date AS DECIMAL(37,2)) my_date id
NULL NULL 1
10101.00 0001-01-01 2
99991231.00 9999-12-31 3
@@ -3219,12 +3133,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_datetime AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS DECIMAL(37,2)),
my_datetime, id FROM t1_values;
-SELECT CAST(my_datetime AS DECIMAL),
+SELECT CAST(my_datetime AS DECIMAL(37,2)),
my_datetime, id FROM t1_values
WHERE select_id = 64 OR select_id IS NULL;
-CAST(my_datetime AS DECIMAL) my_datetime id
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
NULL NULL 1
10101000000.00 0001-01-01 00:00:00 2
99991231235959.00 9999-12-31 23:59:59 3
@@ -3232,11 +3146,11 @@ NULL NULL 1
20050628100000.00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as decimal) AS `CAST(my_datetime AS DECIMAL)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as decimal(37,2)) AS `CAST(my_datetime AS DECIMAL(37,2))`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 64 OR select_id IS NULL);
-CAST(my_datetime AS DECIMAL) my_datetime id
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
NULL NULL 1
10101000000.00 0001-01-01 00:00:00 2
99991231235959.00 9999-12-31 23:59:59 3
@@ -3245,12 +3159,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_decimal AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS DECIMAL(37,2)),
my_decimal, id FROM t1_values;
-SELECT CAST(my_decimal AS DECIMAL),
+SELECT CAST(my_decimal AS DECIMAL(37,2)),
my_decimal, id FROM t1_values
WHERE select_id = 63 OR select_id IS NULL;
-CAST(my_decimal AS DECIMAL) my_decimal id
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
NULL NULL 1
-10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2
10000000000000000000000000000000000.00 9999999999999999999999999999999999.999999999999999999999999999999 3
@@ -3258,11 +3172,11 @@ NULL NULL 1
-1.00 -1.000000000000000000000000000000 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as decimal) AS `CAST(my_decimal AS DECIMAL)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as decimal(37,2)) AS `CAST(my_decimal AS DECIMAL(37,2))`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 63 OR select_id IS NULL);
-CAST(my_decimal AS DECIMAL) my_decimal id
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
NULL NULL 1
-10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2
10000000000000000000000000000000000.00 9999999999999999999999999999999999.999999999999999999999999999999 3
@@ -3271,12 +3185,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_bigint AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS DECIMAL(37,2)),
my_bigint, id FROM t1_values;
-SELECT CAST(my_bigint AS DECIMAL),
+SELECT CAST(my_bigint AS DECIMAL(37,2)),
my_bigint, id FROM t1_values
WHERE select_id = 62 OR select_id IS NULL;
-CAST(my_bigint AS DECIMAL) my_bigint id
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
NULL NULL 1
-9223372036854775808.00 -9223372036854775808 2
9223372036854775807.00 9223372036854775807 3
@@ -3284,11 +3198,11 @@ NULL NULL 1
-1.00 -1 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as decimal) AS `CAST(my_bigint AS DECIMAL)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as decimal(37,2)) AS `CAST(my_bigint AS DECIMAL(37,2))`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 62 OR select_id IS NULL);
-CAST(my_bigint AS DECIMAL) my_bigint id
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
NULL NULL 1
-9223372036854775808.00 -9223372036854775808 2
9223372036854775807.00 9223372036854775807 3
@@ -3297,12 +3211,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)),
my_varbinary_1000, id FROM t1_values;
-SELECT CAST(my_varbinary_1000 AS DECIMAL),
+SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)),
my_varbinary_1000, id FROM t1_values
WHERE select_id = 61 OR select_id IS NULL;
-CAST(my_varbinary_1000 AS DECIMAL) my_varbinary_1000 id
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3315,11 +3229,11 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as decimal) AS `CAST(my_varbinary_1000 AS DECIMAL)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as decimal(37,2)) AS `CAST(my_varbinary_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 61 OR select_id IS NULL);
-CAST(my_varbinary_1000 AS DECIMAL) my_varbinary_1000 id
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3333,12 +3247,12 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DECIMAL(37,2)),
my_binary_30, id FROM t1_values;
-SELECT CAST(my_binary_30 AS DECIMAL),
+SELECT CAST(my_binary_30 AS DECIMAL(37,2)),
my_binary_30, id FROM t1_values
WHERE select_id = 60 OR select_id IS NULL;
-CAST(my_binary_30 AS DECIMAL) my_binary_30 id
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
@@ -3356,11 +3270,11 @@ Warning 1292 Truncated incorrect DECIMAL value: '-1'
Warning 1292 Truncated incorrect DECIMAL value: '-3333.3333'
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as decimal) AS `CAST(my_binary_30 AS DECIMAL)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as decimal(37,2)) AS `CAST(my_binary_30 AS DECIMAL(37,2))`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 60 OR select_id IS NULL);
-CAST(my_binary_30 AS DECIMAL) my_binary_30 id
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
@@ -3379,12 +3293,12 @@ Warning 1292 Truncated incorrect DECIMAL value: '-3333.3333'
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)),
my_varchar_1000, id FROM t1_values;
-SELECT CAST(my_varchar_1000 AS DECIMAL),
+SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)),
my_varchar_1000, id FROM t1_values
WHERE select_id = 59 OR select_id IS NULL;
-CAST(my_varchar_1000 AS DECIMAL) my_varchar_1000 id
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3397,11 +3311,11 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as decimal) AS `CAST(my_varchar_1000 AS DECIMAL)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as decimal(37,2)) AS `CAST(my_varchar_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 59 OR select_id IS NULL);
-CAST(my_varchar_1000 AS DECIMAL) my_varchar_1000 id
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3415,12 +3329,12 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DECIMAL(37,2)),
my_char_30, id FROM t1_values;
-SELECT CAST(my_char_30 AS DECIMAL),
+SELECT CAST(my_char_30 AS DECIMAL(37,2)),
my_char_30, id FROM t1_values
WHERE select_id = 58 OR select_id IS NULL;
-CAST(my_char_30 AS DECIMAL) my_char_30 id
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
@@ -3436,11 +3350,11 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
Warning 1292 Truncated incorrect DECIMAL value: ' ---äÖüß@µ*$-- '
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as decimal) AS `CAST(my_char_30 AS DECIMAL)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as decimal(37,2)) AS `CAST(my_char_30 AS DECIMAL(37,2))`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 58 OR select_id IS NULL);
-CAST(my_char_30 AS DECIMAL) my_char_30 id
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_0102.result b/mysql-test/suite/funcs_1/r/innodb_trig_0102.result
index a2bb203b294..56f20781995 100644
--- a/mysql-test/suite/funcs_1/r/innodb_trig_0102.result
+++ b/mysql-test/suite/funcs_1/r/innodb_trig_0102.result
@@ -237,7 +237,7 @@ create table t1 (f1 integer) engine = innodb;
use test;
CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3
for each row set @ret_trg6_2 = 5;
-ERROR HY000: Trigger in wrong schema
+ERROR 42S02: Table 'trig_db.tb3' doesn't exist
use trig_db;
CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3
for each row set @ret_trg6_3 = 18;
diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_08.result b/mysql-test/suite/funcs_1/r/innodb_trig_08.result
index 0f2d54f01ba..bb087d5882e 100644
--- a/mysql-test/suite/funcs_1/r/innodb_trig_08.result
+++ b/mysql-test/suite/funcs_1/r/innodb_trig_08.result
@@ -484,9 +484,8 @@ BEGIN
WHILE @counter1 < new.f136
SET @counter1 = @counter1 + 1;
END//
-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 'WHILE @counter1 < new.f136
-SET @counter1 = @counter1 + 1;
-END' at line 3
+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 'SET @counter1 = @counter1 + 1;
+END' at line 4
delete from tb3 where f122='Test 3.5.8.5-while';
drop trigger trg7;
diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_09.result b/mysql-test/suite/funcs_1/r/innodb_trig_09.result
index 54b191e401e..685de95db51 100644
--- a/mysql-test/suite/funcs_1/r/innodb_trig_09.result
+++ b/mysql-test/suite/funcs_1/r/innodb_trig_09.result
@@ -194,7 +194,7 @@ a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
where f122='Test 3.5.9.4';
Warnings:
-Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'f136' at row 11
+Warning 1048 Column 'f136' cannot be null
select f118, f121, f122, f136, f151, f163 from tb3
where f122 like 'Test 3.5.9.4-trig';
f118 f121 f122 f136 f151 f163
diff --git a/mysql-test/suite/funcs_1/r/innodb_views.result b/mysql-test/suite/funcs_1/r/innodb_views.result
index 63d1c8a3131..3bb56a82612 100644
--- a/mysql-test/suite/funcs_1/r/innodb_views.result
+++ b/mysql-test/suite/funcs_1/r/innodb_views.result
@@ -10202,7 +10202,8 @@ SHOW FIELDS FROM v1;
ERROR 42S02: Table 'test.v1' doesn't exist
CHECK TABLE v1;
Table Op Msg_type Msg_text
-test.v1 check error Table 'test.v1' doesn't exist
+test.v1 check Error Table 'test.v1' doesn't exist
+test.v1 check error Corrupt
DESCRIBE v1;
ERROR 42S02: Table 'test.v1' doesn't exist
EXPLAIN SELECT * FROM v1;
diff --git a/mysql-test/suite/funcs_1/r/memory__datadict.result b/mysql-test/suite/funcs_1/r/memory__datadict.result
index 1dea8a5f4a9..fda7cc6e76e 100644
--- a/mysql-test/suite/funcs_1/r/memory__datadict.result
+++ b/mysql-test/suite/funcs_1/r/memory__datadict.result
@@ -4842,6 +4842,7 @@ INTO OUTFILE '../tmp/out.memory.db.file'
WHERE schema_name LIKE 'db_%';
CREATE USER user_3212@localhost;
GRANT ALL ON db_datadict.* TO user_3212@localhost;
+GRANT FILE ON *.* TO user_3212@localhost;
connect(localhost,user_3212,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
user_3212@localhost db_datadict
@@ -4850,7 +4851,7 @@ INTO OUTFILE '../tmp/out.memory.user.file'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM schemata LIMIT 0, 5;
-ERROR 28000: Access denied for user 'user_3212'@'localhost' (using password: NO)
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
SELECT *
FROM schemata LIMIT 0, 5;
ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
diff --git a/mysql-test/suite/funcs_1/r/memory_func_view.result b/mysql-test/suite/funcs_1/r/memory_func_view.result
index 08e49d1bf6f..552b549a1a0 100644
--- a/mysql-test/suite/funcs_1/r/memory_func_view.result
+++ b/mysql-test/suite/funcs_1/r/memory_func_view.result
@@ -2400,16 +2400,10 @@ my_time, id FROM t1_values
WHERE select_id = 89 OR select_id IS NULL;
CAST(my_time AS UNSIGNED INTEGER) my_time id
NULL NULL 1
-18446744073709550778 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1105 Cast to unsigned converted negative integer to it's positive complement
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+18446744073701165657 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as unsigned) AS `CAST(my_time AS UNSIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2418,16 +2412,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 89 OR select_id IS NULL);
CAST(my_time AS UNSIGNED INTEGER) my_time id
NULL NULL 1
-18446744073709550778 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1105 Cast to unsigned converted negative integer to it's positive complement
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+18446744073701165657 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
DROP VIEW v1;
@@ -2438,16 +2426,10 @@ my_timestamp, id FROM t1_values
WHERE select_id = 88 OR select_id IS NULL;
CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as unsigned) AS `CAST(my_timestamp AS UNSIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2456,16 +2438,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 88 OR select_id IS NULL);
CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2476,15 +2452,10 @@ my_date, id FROM t1_values
WHERE select_id = 87 OR select_id IS NULL;
CAST(my_date AS UNSIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as unsigned) AS `CAST(my_date AS UNSIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2493,15 +2464,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 87 OR select_id IS NULL);
CAST(my_date AS UNSIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
DROP VIEW v1;
@@ -2512,15 +2478,10 @@ my_datetime, id FROM t1_values
WHERE select_id = 86 OR select_id IS NULL;
CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as unsigned) AS `CAST(my_datetime AS UNSIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2529,15 +2490,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 86 OR select_id IS NULL);
CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2780,15 +2736,10 @@ my_time, id FROM t1_values
WHERE select_id = 78 OR select_id IS NULL;
CAST(my_time AS SIGNED INTEGER) my_time id
NULL NULL 1
--838 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+-8385959 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as signed) AS `CAST(my_time AS SIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2797,15 +2748,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 78 OR select_id IS NULL);
CAST(my_time AS SIGNED INTEGER) my_time id
NULL NULL 1
--838 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+-8385959 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
DROP VIEW v1;
@@ -2816,16 +2762,10 @@ my_timestamp, id FROM t1_values
WHERE select_id = 77 OR select_id IS NULL;
CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as signed) AS `CAST(my_timestamp AS SIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2834,16 +2774,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 77 OR select_id IS NULL);
CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2854,15 +2788,10 @@ my_date, id FROM t1_values
WHERE select_id = 76 OR select_id IS NULL;
CAST(my_date AS SIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as signed) AS `CAST(my_date AS SIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2871,15 +2800,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 76 OR select_id IS NULL);
CAST(my_date AS SIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
DROP VIEW v1;
@@ -2890,15 +2814,10 @@ my_datetime, id FROM t1_values
WHERE select_id = 75 OR select_id IS NULL;
CAST(my_datetime AS SIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as signed) AS `CAST(my_datetime AS SIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2907,15 +2826,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 75 OR select_id IS NULL);
CAST(my_datetime AS SIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2926,8 +2840,8 @@ my_decimal, id FROM t1_values
WHERE select_id = 74 OR select_id IS NULL;
CAST(my_decimal AS SIGNED INTEGER) my_decimal id
NULL NULL 1
--10000000000000000 -9999999999999999999999999999999999.999999999999999999999999999999 2
-10000000000000000 9999999999999999999999999999999999.999999999999999999999999999999 3
+-9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9223372036854775807 9999999999999999999999999999999999.999999999999999999999999999999 3
0 0.000000000000000000000000000000 4
-1 -1.000000000000000000000000000000 5
Warnings:
@@ -2941,8 +2855,8 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 74 OR select_id IS NULL);
CAST(my_decimal AS SIGNED INTEGER) my_decimal id
NULL NULL 1
--10000000000000000 -9999999999999999999999999999999999.999999999999999999999999999999 2
-10000000000000000 9999999999999999999999999999999999.999999999999999999999999999999 3
+-9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9223372036854775807 9999999999999999999999999999999999.999999999999999999999999999999 3
0 0.000000000000000000000000000000 4
-1 -1.000000000000000000000000000000 5
Warnings:
@@ -3115,12 +3029,12 @@ Warning 1292 Truncated incorrect INTEGER value: ' ---
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL(37,2)),
my_year, id FROM t1_values;
-SELECT CAST(my_year AS DECIMAL),
+SELECT CAST(my_year AS DECIMAL(37,2)),
my_year, id FROM t1_values
WHERE select_id = 68 OR select_id IS NULL;
-CAST(my_year AS DECIMAL) my_year id
+CAST(my_year AS DECIMAL(37,2)) my_year id
NULL NULL 1
1901.00 1901 2
2155.00 2155 3
@@ -3128,11 +3042,11 @@ NULL NULL 1
2005.00 2005 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as decimal) AS `CAST(my_year AS DECIMAL)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as decimal(37,2)) AS `CAST(my_year AS DECIMAL(37,2))`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 68 OR select_id IS NULL);
-CAST(my_year AS DECIMAL) my_year id
+CAST(my_year AS DECIMAL(37,2)) my_year id
NULL NULL 1
1901.00 1901 2
2155.00 2155 3
@@ -3141,12 +3055,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_time AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_time AS DECIMAL(37,2)),
my_time, id FROM t1_values;
-SELECT CAST(my_time AS DECIMAL),
+SELECT CAST(my_time AS DECIMAL(37,2)),
my_time, id FROM t1_values
WHERE select_id = 67 OR select_id IS NULL;
-CAST(my_time AS DECIMAL) my_time id
+CAST(my_time AS DECIMAL(37,2)) my_time id
NULL NULL 1
-8385959.00 -838:59:59 2
8385959.00 838:59:59 3
@@ -3154,11 +3068,11 @@ NULL NULL 1
100000.00 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as decimal) AS `CAST(my_time AS DECIMAL)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as decimal(37,2)) AS `CAST(my_time AS DECIMAL(37,2))`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 67 OR select_id IS NULL);
-CAST(my_time AS DECIMAL) my_time id
+CAST(my_time AS DECIMAL(37,2)) my_time id
NULL NULL 1
-8385959.00 -838:59:59 2
8385959.00 838:59:59 3
@@ -3167,12 +3081,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DECIMAL(37,2)),
my_timestamp, id FROM t1_values;
-SELECT CAST(my_timestamp AS DECIMAL),
+SELECT CAST(my_timestamp AS DECIMAL(37,2)),
my_timestamp, id FROM t1_values
WHERE select_id = 66 OR select_id IS NULL;
-CAST(my_timestamp AS DECIMAL) my_timestamp id
+CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id
0.00 0000-00-00 00:00:00 1
19700101030001.00 1970-01-01 03:00:01 2
20380101025959.00 2038-01-01 02:59:59 3
@@ -3180,11 +3094,11 @@ CAST(my_timestamp AS DECIMAL) my_timestamp id
20050628100000.00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as decimal) AS `CAST(my_timestamp AS DECIMAL)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as decimal(37,2)) AS `CAST(my_timestamp AS DECIMAL(37,2))`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 66 OR select_id IS NULL);
-CAST(my_timestamp AS DECIMAL) my_timestamp id
+CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id
0.00 0000-00-00 00:00:00 1
19700101030001.00 1970-01-01 03:00:01 2
20380101025959.00 2038-01-01 02:59:59 3
@@ -3193,12 +3107,12 @@ CAST(my_timestamp AS DECIMAL) my_timestamp id
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_date AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_date AS DECIMAL(37,2)),
my_date, id FROM t1_values;
-SELECT CAST(my_date AS DECIMAL),
+SELECT CAST(my_date AS DECIMAL(37,2)),
my_date, id FROM t1_values
WHERE select_id = 65 OR select_id IS NULL;
-CAST(my_date AS DECIMAL) my_date id
+CAST(my_date AS DECIMAL(37,2)) my_date id
NULL NULL 1
10101.00 0001-01-01 2
99991231.00 9999-12-31 3
@@ -3206,11 +3120,11 @@ NULL NULL 1
20050628.00 2005-06-28 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as decimal) AS `CAST(my_date AS DECIMAL)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as decimal(37,2)) AS `CAST(my_date AS DECIMAL(37,2))`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 65 OR select_id IS NULL);
-CAST(my_date AS DECIMAL) my_date id
+CAST(my_date AS DECIMAL(37,2)) my_date id
NULL NULL 1
10101.00 0001-01-01 2
99991231.00 9999-12-31 3
@@ -3219,12 +3133,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_datetime AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS DECIMAL(37,2)),
my_datetime, id FROM t1_values;
-SELECT CAST(my_datetime AS DECIMAL),
+SELECT CAST(my_datetime AS DECIMAL(37,2)),
my_datetime, id FROM t1_values
WHERE select_id = 64 OR select_id IS NULL;
-CAST(my_datetime AS DECIMAL) my_datetime id
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
NULL NULL 1
10101000000.00 0001-01-01 00:00:00 2
99991231235959.00 9999-12-31 23:59:59 3
@@ -3232,11 +3146,11 @@ NULL NULL 1
20050628100000.00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as decimal) AS `CAST(my_datetime AS DECIMAL)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as decimal(37,2)) AS `CAST(my_datetime AS DECIMAL(37,2))`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 64 OR select_id IS NULL);
-CAST(my_datetime AS DECIMAL) my_datetime id
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
NULL NULL 1
10101000000.00 0001-01-01 00:00:00 2
99991231235959.00 9999-12-31 23:59:59 3
@@ -3245,12 +3159,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_decimal AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS DECIMAL(37,2)),
my_decimal, id FROM t1_values;
-SELECT CAST(my_decimal AS DECIMAL),
+SELECT CAST(my_decimal AS DECIMAL(37,2)),
my_decimal, id FROM t1_values
WHERE select_id = 63 OR select_id IS NULL;
-CAST(my_decimal AS DECIMAL) my_decimal id
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
NULL NULL 1
-10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2
10000000000000000000000000000000000.00 9999999999999999999999999999999999.999999999999999999999999999999 3
@@ -3258,11 +3172,11 @@ NULL NULL 1
-1.00 -1.000000000000000000000000000000 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as decimal) AS `CAST(my_decimal AS DECIMAL)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as decimal(37,2)) AS `CAST(my_decimal AS DECIMAL(37,2))`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 63 OR select_id IS NULL);
-CAST(my_decimal AS DECIMAL) my_decimal id
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
NULL NULL 1
-10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2
10000000000000000000000000000000000.00 9999999999999999999999999999999999.999999999999999999999999999999 3
@@ -3271,12 +3185,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_bigint AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS DECIMAL(37,2)),
my_bigint, id FROM t1_values;
-SELECT CAST(my_bigint AS DECIMAL),
+SELECT CAST(my_bigint AS DECIMAL(37,2)),
my_bigint, id FROM t1_values
WHERE select_id = 62 OR select_id IS NULL;
-CAST(my_bigint AS DECIMAL) my_bigint id
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
NULL NULL 1
-9223372036854775808.00 -9223372036854775808 2
9223372036854775807.00 9223372036854775807 3
@@ -3284,11 +3198,11 @@ NULL NULL 1
-1.00 -1 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as decimal) AS `CAST(my_bigint AS DECIMAL)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as decimal(37,2)) AS `CAST(my_bigint AS DECIMAL(37,2))`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 62 OR select_id IS NULL);
-CAST(my_bigint AS DECIMAL) my_bigint id
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
NULL NULL 1
-9223372036854775808.00 -9223372036854775808 2
9223372036854775807.00 9223372036854775807 3
@@ -3297,12 +3211,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)),
my_varbinary_1000, id FROM t1_values;
-SELECT CAST(my_varbinary_1000 AS DECIMAL),
+SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)),
my_varbinary_1000, id FROM t1_values
WHERE select_id = 61 OR select_id IS NULL;
-CAST(my_varbinary_1000 AS DECIMAL) my_varbinary_1000 id
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3315,11 +3229,11 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as decimal) AS `CAST(my_varbinary_1000 AS DECIMAL)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as decimal(37,2)) AS `CAST(my_varbinary_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 61 OR select_id IS NULL);
-CAST(my_varbinary_1000 AS DECIMAL) my_varbinary_1000 id
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3333,12 +3247,12 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DECIMAL(37,2)),
my_binary_30, id FROM t1_values;
-SELECT CAST(my_binary_30 AS DECIMAL),
+SELECT CAST(my_binary_30 AS DECIMAL(37,2)),
my_binary_30, id FROM t1_values
WHERE select_id = 60 OR select_id IS NULL;
-CAST(my_binary_30 AS DECIMAL) my_binary_30 id
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
@@ -3356,11 +3270,11 @@ Warning 1292 Truncated incorrect DECIMAL value: '-1'
Warning 1292 Truncated incorrect DECIMAL value: '-3333.3333'
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as decimal) AS `CAST(my_binary_30 AS DECIMAL)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as decimal(37,2)) AS `CAST(my_binary_30 AS DECIMAL(37,2))`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 60 OR select_id IS NULL);
-CAST(my_binary_30 AS DECIMAL) my_binary_30 id
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
@@ -3379,12 +3293,12 @@ Warning 1292 Truncated incorrect DECIMAL value: '-3333.3333'
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)),
my_varchar_1000, id FROM t1_values;
-SELECT CAST(my_varchar_1000 AS DECIMAL),
+SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)),
my_varchar_1000, id FROM t1_values
WHERE select_id = 59 OR select_id IS NULL;
-CAST(my_varchar_1000 AS DECIMAL) my_varchar_1000 id
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3397,11 +3311,11 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as decimal) AS `CAST(my_varchar_1000 AS DECIMAL)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as decimal(37,2)) AS `CAST(my_varchar_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 59 OR select_id IS NULL);
-CAST(my_varchar_1000 AS DECIMAL) my_varchar_1000 id
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3415,12 +3329,12 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DECIMAL(37,2)),
my_char_30, id FROM t1_values;
-SELECT CAST(my_char_30 AS DECIMAL),
+SELECT CAST(my_char_30 AS DECIMAL(37,2)),
my_char_30, id FROM t1_values
WHERE select_id = 58 OR select_id IS NULL;
-CAST(my_char_30 AS DECIMAL) my_char_30 id
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
@@ -3436,11 +3350,11 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
Warning 1292 Truncated incorrect DECIMAL value: ' ---äÖüß@µ*$-- '
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as decimal) AS `CAST(my_char_30 AS DECIMAL)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as decimal(37,2)) AS `CAST(my_char_30 AS DECIMAL(37,2))`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 58 OR select_id IS NULL);
-CAST(my_char_30 AS DECIMAL) my_char_30 id
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
diff --git a/mysql-test/suite/funcs_1/r/memory_trig_0102.result b/mysql-test/suite/funcs_1/r/memory_trig_0102.result
index 0a640201d76..e7fec297ca7 100644
--- a/mysql-test/suite/funcs_1/r/memory_trig_0102.result
+++ b/mysql-test/suite/funcs_1/r/memory_trig_0102.result
@@ -233,7 +233,7 @@ create table t1 (f1 integer) engine = memory;
use test;
CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3
for each row set @ret_trg6_2 = 5;
-ERROR HY000: Trigger in wrong schema
+ERROR 42S02: Table 'trig_db.tb3' doesn't exist
use trig_db;
CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3
for each row set @ret_trg6_3 = 18;
diff --git a/mysql-test/suite/funcs_1/r/memory_trig_08.result b/mysql-test/suite/funcs_1/r/memory_trig_08.result
index 9a14845d0eb..a842bbc3ac7 100644
--- a/mysql-test/suite/funcs_1/r/memory_trig_08.result
+++ b/mysql-test/suite/funcs_1/r/memory_trig_08.result
@@ -480,9 +480,8 @@ BEGIN
WHILE @counter1 < new.f136
SET @counter1 = @counter1 + 1;
END//
-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 'WHILE @counter1 < new.f136
-SET @counter1 = @counter1 + 1;
-END' at line 3
+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 'SET @counter1 = @counter1 + 1;
+END' at line 4
delete from tb3 where f122='Test 3.5.8.5-while';
drop trigger trg7;
diff --git a/mysql-test/suite/funcs_1/r/memory_trig_09.result b/mysql-test/suite/funcs_1/r/memory_trig_09.result
index c1b9ec6d33f..3dbe64958e3 100644
--- a/mysql-test/suite/funcs_1/r/memory_trig_09.result
+++ b/mysql-test/suite/funcs_1/r/memory_trig_09.result
@@ -190,7 +190,7 @@ a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
where f122='Test 3.5.9.4';
Warnings:
-Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'f136' at row 11
+Warning 1048 Column 'f136' cannot be null
select f118, f121, f122, f136, f151, f163 from tb3
where f122 like 'Test 3.5.9.4-trig';
f118 f121 f122 f136 f151 f163
diff --git a/mysql-test/suite/funcs_1/r/memory_views.result b/mysql-test/suite/funcs_1/r/memory_views.result
index 516eef24439..69dee081446 100644
--- a/mysql-test/suite/funcs_1/r/memory_views.result
+++ b/mysql-test/suite/funcs_1/r/memory_views.result
@@ -10207,7 +10207,8 @@ SHOW FIELDS FROM v1;
ERROR 42S02: Table 'test.v1' doesn't exist
CHECK TABLE v1;
Table Op Msg_type Msg_text
-test.v1 check error Table 'test.v1' doesn't exist
+test.v1 check Error Table 'test.v1' doesn't exist
+test.v1 check error Corrupt
DESCRIBE v1;
ERROR 42S02: Table 'test.v1' doesn't exist
EXPLAIN SELECT * FROM v1;
diff --git a/mysql-test/suite/funcs_1/r/myisam__datadict.result b/mysql-test/suite/funcs_1/r/myisam__datadict.result
index e9082e7aee7..b95d51f3801 100644
--- a/mysql-test/suite/funcs_1/r/myisam__datadict.result
+++ b/mysql-test/suite/funcs_1/r/myisam__datadict.result
@@ -4912,6 +4912,7 @@ INTO OUTFILE '../tmp/out.myisam.db.file'
WHERE schema_name LIKE 'db_%';
CREATE USER user_3212@localhost;
GRANT ALL ON db_datadict.* TO user_3212@localhost;
+GRANT FILE ON *.* TO user_3212@localhost;
connect(localhost,user_3212,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
user_3212@localhost db_datadict
@@ -4920,7 +4921,7 @@ INTO OUTFILE '../tmp/out.myisam.user.file'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM schemata LIMIT 0, 5;
-ERROR 28000: Access denied for user 'user_3212'@'localhost' (using password: NO)
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
SELECT *
FROM schemata LIMIT 0, 5;
ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
diff --git a/mysql-test/suite/funcs_1/r/myisam_func_view.result b/mysql-test/suite/funcs_1/r/myisam_func_view.result
index 4f8a1b23bc0..94cba9796a2 100644
--- a/mysql-test/suite/funcs_1/r/myisam_func_view.result
+++ b/mysql-test/suite/funcs_1/r/myisam_func_view.result
@@ -2400,16 +2400,10 @@ my_time, id FROM t1_values
WHERE select_id = 89 OR select_id IS NULL;
CAST(my_time AS UNSIGNED INTEGER) my_time id
NULL NULL 1
-18446744073709550778 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1105 Cast to unsigned converted negative integer to it's positive complement
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+18446744073701165657 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as unsigned) AS `CAST(my_time AS UNSIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2418,16 +2412,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 89 OR select_id IS NULL);
CAST(my_time AS UNSIGNED INTEGER) my_time id
NULL NULL 1
-18446744073709550778 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1105 Cast to unsigned converted negative integer to it's positive complement
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+18446744073701165657 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
DROP VIEW v1;
@@ -2438,16 +2426,10 @@ my_timestamp, id FROM t1_values
WHERE select_id = 88 OR select_id IS NULL;
CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as unsigned) AS `CAST(my_timestamp AS UNSIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2456,16 +2438,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 88 OR select_id IS NULL);
CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2476,15 +2452,10 @@ my_date, id FROM t1_values
WHERE select_id = 87 OR select_id IS NULL;
CAST(my_date AS UNSIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as unsigned) AS `CAST(my_date AS UNSIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2493,15 +2464,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 87 OR select_id IS NULL);
CAST(my_date AS UNSIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
DROP VIEW v1;
@@ -2512,15 +2478,10 @@ my_datetime, id FROM t1_values
WHERE select_id = 86 OR select_id IS NULL;
CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as unsigned) AS `CAST(my_datetime AS UNSIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2529,15 +2490,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 86 OR select_id IS NULL);
CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2780,15 +2736,10 @@ my_time, id FROM t1_values
WHERE select_id = 78 OR select_id IS NULL;
CAST(my_time AS SIGNED INTEGER) my_time id
NULL NULL 1
--838 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+-8385959 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as signed) AS `CAST(my_time AS SIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2797,15 +2748,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 78 OR select_id IS NULL);
CAST(my_time AS SIGNED INTEGER) my_time id
NULL NULL 1
--838 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+-8385959 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
DROP VIEW v1;
@@ -2816,16 +2762,10 @@ my_timestamp, id FROM t1_values
WHERE select_id = 77 OR select_id IS NULL;
CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as signed) AS `CAST(my_timestamp AS SIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2834,16 +2774,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 77 OR select_id IS NULL);
CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2854,15 +2788,10 @@ my_date, id FROM t1_values
WHERE select_id = 76 OR select_id IS NULL;
CAST(my_date AS SIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as signed) AS `CAST(my_date AS SIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2871,15 +2800,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 76 OR select_id IS NULL);
CAST(my_date AS SIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
DROP VIEW v1;
@@ -2890,15 +2814,10 @@ my_datetime, id FROM t1_values
WHERE select_id = 75 OR select_id IS NULL;
CAST(my_datetime AS SIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as signed) AS `CAST(my_datetime AS SIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
@@ -2907,15 +2826,10 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 75 OR select_id IS NULL);
CAST(my_datetime AS SIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2926,8 +2840,8 @@ my_decimal, id FROM t1_values
WHERE select_id = 74 OR select_id IS NULL;
CAST(my_decimal AS SIGNED INTEGER) my_decimal id
NULL NULL 1
--10000000000000000 -9999999999999999999999999999999999.999999999999999999999999999999 2
-10000000000000000 9999999999999999999999999999999999.999999999999999999999999999999 3
+-9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9223372036854775807 9999999999999999999999999999999999.999999999999999999999999999999 3
0 0.000000000000000000000000000000 4
-1 -1.000000000000000000000000000000 5
Warnings:
@@ -2941,8 +2855,8 @@ WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 74 OR select_id IS NULL);
CAST(my_decimal AS SIGNED INTEGER) my_decimal id
NULL NULL 1
--10000000000000000 -9999999999999999999999999999999999.999999999999999999999999999999 2
-10000000000000000 9999999999999999999999999999999999.999999999999999999999999999999 3
+-9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9223372036854775807 9999999999999999999999999999999999.999999999999999999999999999999 3
0 0.000000000000000000000000000000 4
-1 -1.000000000000000000000000000000 5
Warnings:
@@ -3115,12 +3029,12 @@ Warning 1292 Truncated incorrect INTEGER value: ' ---
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL(37,2)),
my_year, id FROM t1_values;
-SELECT CAST(my_year AS DECIMAL),
+SELECT CAST(my_year AS DECIMAL(37,2)),
my_year, id FROM t1_values
WHERE select_id = 68 OR select_id IS NULL;
-CAST(my_year AS DECIMAL) my_year id
+CAST(my_year AS DECIMAL(37,2)) my_year id
NULL NULL 1
1901.00 1901 2
2155.00 2155 3
@@ -3128,11 +3042,11 @@ NULL NULL 1
2005.00 2005 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as decimal) AS `CAST(my_year AS DECIMAL)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as decimal(37,2)) AS `CAST(my_year AS DECIMAL(37,2))`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 68 OR select_id IS NULL);
-CAST(my_year AS DECIMAL) my_year id
+CAST(my_year AS DECIMAL(37,2)) my_year id
NULL NULL 1
1901.00 1901 2
2155.00 2155 3
@@ -3141,12 +3055,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_time AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_time AS DECIMAL(37,2)),
my_time, id FROM t1_values;
-SELECT CAST(my_time AS DECIMAL),
+SELECT CAST(my_time AS DECIMAL(37,2)),
my_time, id FROM t1_values
WHERE select_id = 67 OR select_id IS NULL;
-CAST(my_time AS DECIMAL) my_time id
+CAST(my_time AS DECIMAL(37,2)) my_time id
NULL NULL 1
-8385959.00 -838:59:59 2
8385959.00 838:59:59 3
@@ -3154,11 +3068,11 @@ NULL NULL 1
100000.00 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as decimal) AS `CAST(my_time AS DECIMAL)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as decimal(37,2)) AS `CAST(my_time AS DECIMAL(37,2))`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 67 OR select_id IS NULL);
-CAST(my_time AS DECIMAL) my_time id
+CAST(my_time AS DECIMAL(37,2)) my_time id
NULL NULL 1
-8385959.00 -838:59:59 2
8385959.00 838:59:59 3
@@ -3167,12 +3081,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DECIMAL(37,2)),
my_timestamp, id FROM t1_values;
-SELECT CAST(my_timestamp AS DECIMAL),
+SELECT CAST(my_timestamp AS DECIMAL(37,2)),
my_timestamp, id FROM t1_values
WHERE select_id = 66 OR select_id IS NULL;
-CAST(my_timestamp AS DECIMAL) my_timestamp id
+CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id
0.00 0000-00-00 00:00:00 1
19700101030001.00 1970-01-01 03:00:01 2
20380101025959.00 2038-01-01 02:59:59 3
@@ -3180,11 +3094,11 @@ CAST(my_timestamp AS DECIMAL) my_timestamp id
20050628100000.00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as decimal) AS `CAST(my_timestamp AS DECIMAL)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as decimal(37,2)) AS `CAST(my_timestamp AS DECIMAL(37,2))`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 66 OR select_id IS NULL);
-CAST(my_timestamp AS DECIMAL) my_timestamp id
+CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id
0.00 0000-00-00 00:00:00 1
19700101030001.00 1970-01-01 03:00:01 2
20380101025959.00 2038-01-01 02:59:59 3
@@ -3193,12 +3107,12 @@ CAST(my_timestamp AS DECIMAL) my_timestamp id
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_date AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_date AS DECIMAL(37,2)),
my_date, id FROM t1_values;
-SELECT CAST(my_date AS DECIMAL),
+SELECT CAST(my_date AS DECIMAL(37,2)),
my_date, id FROM t1_values
WHERE select_id = 65 OR select_id IS NULL;
-CAST(my_date AS DECIMAL) my_date id
+CAST(my_date AS DECIMAL(37,2)) my_date id
NULL NULL 1
10101.00 0001-01-01 2
99991231.00 9999-12-31 3
@@ -3206,11 +3120,11 @@ NULL NULL 1
20050628.00 2005-06-28 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as decimal) AS `CAST(my_date AS DECIMAL)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as decimal(37,2)) AS `CAST(my_date AS DECIMAL(37,2))`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 65 OR select_id IS NULL);
-CAST(my_date AS DECIMAL) my_date id
+CAST(my_date AS DECIMAL(37,2)) my_date id
NULL NULL 1
10101.00 0001-01-01 2
99991231.00 9999-12-31 3
@@ -3219,12 +3133,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_datetime AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS DECIMAL(37,2)),
my_datetime, id FROM t1_values;
-SELECT CAST(my_datetime AS DECIMAL),
+SELECT CAST(my_datetime AS DECIMAL(37,2)),
my_datetime, id FROM t1_values
WHERE select_id = 64 OR select_id IS NULL;
-CAST(my_datetime AS DECIMAL) my_datetime id
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
NULL NULL 1
10101000000.00 0001-01-01 00:00:00 2
99991231235959.00 9999-12-31 23:59:59 3
@@ -3232,11 +3146,11 @@ NULL NULL 1
20050628100000.00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as decimal) AS `CAST(my_datetime AS DECIMAL)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as decimal(37,2)) AS `CAST(my_datetime AS DECIMAL(37,2))`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 64 OR select_id IS NULL);
-CAST(my_datetime AS DECIMAL) my_datetime id
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
NULL NULL 1
10101000000.00 0001-01-01 00:00:00 2
99991231235959.00 9999-12-31 23:59:59 3
@@ -3245,12 +3159,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_decimal AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS DECIMAL(37,2)),
my_decimal, id FROM t1_values;
-SELECT CAST(my_decimal AS DECIMAL),
+SELECT CAST(my_decimal AS DECIMAL(37,2)),
my_decimal, id FROM t1_values
WHERE select_id = 63 OR select_id IS NULL;
-CAST(my_decimal AS DECIMAL) my_decimal id
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
NULL NULL 1
-10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2
10000000000000000000000000000000000.00 9999999999999999999999999999999999.999999999999999999999999999999 3
@@ -3258,11 +3172,11 @@ NULL NULL 1
-1.00 -1.000000000000000000000000000000 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as decimal) AS `CAST(my_decimal AS DECIMAL)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as decimal(37,2)) AS `CAST(my_decimal AS DECIMAL(37,2))`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 63 OR select_id IS NULL);
-CAST(my_decimal AS DECIMAL) my_decimal id
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
NULL NULL 1
-10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2
10000000000000000000000000000000000.00 9999999999999999999999999999999999.999999999999999999999999999999 3
@@ -3271,12 +3185,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_bigint AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS DECIMAL(37,2)),
my_bigint, id FROM t1_values;
-SELECT CAST(my_bigint AS DECIMAL),
+SELECT CAST(my_bigint AS DECIMAL(37,2)),
my_bigint, id FROM t1_values
WHERE select_id = 62 OR select_id IS NULL;
-CAST(my_bigint AS DECIMAL) my_bigint id
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
NULL NULL 1
-9223372036854775808.00 -9223372036854775808 2
9223372036854775807.00 9223372036854775807 3
@@ -3284,11 +3198,11 @@ NULL NULL 1
-1.00 -1 5
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as decimal) AS `CAST(my_bigint AS DECIMAL)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as decimal(37,2)) AS `CAST(my_bigint AS DECIMAL(37,2))`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 62 OR select_id IS NULL);
-CAST(my_bigint AS DECIMAL) my_bigint id
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
NULL NULL 1
-9223372036854775808.00 -9223372036854775808 2
9223372036854775807.00 9223372036854775807 3
@@ -3297,12 +3211,12 @@ NULL NULL 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)),
my_varbinary_1000, id FROM t1_values;
-SELECT CAST(my_varbinary_1000 AS DECIMAL),
+SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)),
my_varbinary_1000, id FROM t1_values
WHERE select_id = 61 OR select_id IS NULL;
-CAST(my_varbinary_1000 AS DECIMAL) my_varbinary_1000 id
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3315,11 +3229,11 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as decimal) AS `CAST(my_varbinary_1000 AS DECIMAL)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as decimal(37,2)) AS `CAST(my_varbinary_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 61 OR select_id IS NULL);
-CAST(my_varbinary_1000 AS DECIMAL) my_varbinary_1000 id
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3333,12 +3247,12 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DECIMAL(37,2)),
my_binary_30, id FROM t1_values;
-SELECT CAST(my_binary_30 AS DECIMAL),
+SELECT CAST(my_binary_30 AS DECIMAL(37,2)),
my_binary_30, id FROM t1_values
WHERE select_id = 60 OR select_id IS NULL;
-CAST(my_binary_30 AS DECIMAL) my_binary_30 id
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
@@ -3356,11 +3270,11 @@ Warning 1292 Truncated incorrect DECIMAL value: '-1'
Warning 1292 Truncated incorrect DECIMAL value: '-3333.3333'
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as decimal) AS `CAST(my_binary_30 AS DECIMAL)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as decimal(37,2)) AS `CAST(my_binary_30 AS DECIMAL(37,2))`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 60 OR select_id IS NULL);
-CAST(my_binary_30 AS DECIMAL) my_binary_30 id
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
@@ -3379,12 +3293,12 @@ Warning 1292 Truncated incorrect DECIMAL value: '-3333.3333'
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)),
my_varchar_1000, id FROM t1_values;
-SELECT CAST(my_varchar_1000 AS DECIMAL),
+SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)),
my_varchar_1000, id FROM t1_values
WHERE select_id = 59 OR select_id IS NULL;
-CAST(my_varchar_1000 AS DECIMAL) my_varchar_1000 id
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3397,11 +3311,11 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as decimal) AS `CAST(my_varchar_1000 AS DECIMAL)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as decimal(37,2)) AS `CAST(my_varchar_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 59 OR select_id IS NULL);
-CAST(my_varchar_1000 AS DECIMAL) my_varchar_1000 id
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
NULL NULL 1
0.00 2
0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
@@ -3415,12 +3329,12 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DECIMAL(37,2)),
my_char_30, id FROM t1_values;
-SELECT CAST(my_char_30 AS DECIMAL),
+SELECT CAST(my_char_30 AS DECIMAL(37,2)),
my_char_30, id FROM t1_values
WHERE select_id = 58 OR select_id IS NULL;
-CAST(my_char_30 AS DECIMAL) my_char_30 id
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
@@ -3436,11 +3350,11 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
Warning 1292 Truncated incorrect DECIMAL value: ' ---äÖüß@µ*$-- '
SHOW CREATE VIEW v1;
View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as decimal) AS `CAST(my_char_30 AS DECIMAL)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as decimal(37,2)) AS `CAST(my_char_30 AS DECIMAL(37,2))`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 58 OR select_id IS NULL);
-CAST(my_char_30 AS DECIMAL) my_char_30 id
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
NULL NULL 1
0.00 2
0.00 <--------30 characters-------> 3
diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_0102.result b/mysql-test/suite/funcs_1/r/myisam_trig_0102.result
index 4bbee8aa133..6dd56a1e912 100644
--- a/mysql-test/suite/funcs_1/r/myisam_trig_0102.result
+++ b/mysql-test/suite/funcs_1/r/myisam_trig_0102.result
@@ -237,7 +237,7 @@ create table t1 (f1 integer) engine = myisam;
use test;
CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3
for each row set @ret_trg6_2 = 5;
-ERROR HY000: Trigger in wrong schema
+ERROR 42S02: Table 'trig_db.tb3' doesn't exist
use trig_db;
CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3
for each row set @ret_trg6_3 = 18;
diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_08.result b/mysql-test/suite/funcs_1/r/myisam_trig_08.result
index ec8e12ff32d..8a13e91d71d 100644
--- a/mysql-test/suite/funcs_1/r/myisam_trig_08.result
+++ b/mysql-test/suite/funcs_1/r/myisam_trig_08.result
@@ -484,9 +484,8 @@ BEGIN
WHILE @counter1 < new.f136
SET @counter1 = @counter1 + 1;
END//
-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 'WHILE @counter1 < new.f136
-SET @counter1 = @counter1 + 1;
-END' at line 3
+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 'SET @counter1 = @counter1 + 1;
+END' at line 4
delete from tb3 where f122='Test 3.5.8.5-while';
drop trigger trg7;
diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_09.result b/mysql-test/suite/funcs_1/r/myisam_trig_09.result
index 9643aa567e3..b7a5933e2f7 100644
--- a/mysql-test/suite/funcs_1/r/myisam_trig_09.result
+++ b/mysql-test/suite/funcs_1/r/myisam_trig_09.result
@@ -194,7 +194,7 @@ a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
where f122='Test 3.5.9.4';
Warnings:
-Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'f136' at row 11
+Warning 1048 Column 'f136' cannot be null
select f118, f121, f122, f136, f151, f163 from tb3
where f122 like 'Test 3.5.9.4-trig';
f118 f121 f122 f136 f151 f163
diff --git a/mysql-test/suite/funcs_1/r/myisam_views.result b/mysql-test/suite/funcs_1/r/myisam_views.result
index 1dbebbccb29..83af04dcd2c 100644
--- a/mysql-test/suite/funcs_1/r/myisam_views.result
+++ b/mysql-test/suite/funcs_1/r/myisam_views.result
@@ -10224,7 +10224,8 @@ SHOW FIELDS FROM v1;
ERROR 42S02: Table 'test.v1' doesn't exist
CHECK TABLE v1;
Table Op Msg_type Msg_text
-test.v1 check error Table 'test.v1' doesn't exist
+test.v1 check Error Table 'test.v1' doesn't exist
+test.v1 check error Corrupt
DESCRIBE v1;
ERROR 42S02: Table 'test.v1' doesn't exist
EXPLAIN SELECT * FROM v1;
diff --git a/mysql-test/suite/funcs_1/triggers/triggers_0102.inc b/mysql-test/suite/funcs_1/triggers/triggers_0102.inc
index 26a5dab3370..b11455c07d3 100644
--- a/mysql-test/suite/funcs_1/triggers/triggers_0102.inc
+++ b/mysql-test/suite/funcs_1/triggers/triggers_0102.inc
@@ -265,7 +265,7 @@ let $message= Testcase 3.5.1.8:;
# Can't create a trigger in a different database
use test;
- --error 1435
+ --error 1146
CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3
for each row set @ret_trg6_2 = 5;
diff --git a/mysql-test/suite/funcs_1/views/func_view.inc b/mysql-test/suite/funcs_1/views/func_view.inc
index 4479db22e70..c477eafc610 100644
--- a/mysql-test/suite/funcs_1/views/func_view.inc
+++ b/mysql-test/suite/funcs_1/views/func_view.inc
@@ -609,7 +609,8 @@ let $col_type= my_year;
# 1.1.6. CAST --> DECIMAL
-let $target_type= DECIMAL;
+# Set the following to (37,2) since the default was changed to (10,0) - OBN
+let $target_type= DECIMAL(37,2);
#
let $col_type= my_char_30;
--source suite/funcs_1/views/fv_cast.inc
From 20e7e9870ad8cab26071cdad80bbfa162b489fc3 Mon Sep 17 00:00:00 2001
From: "anozdrin/alik@ibm." <>
Date: Wed, 25 Jul 2007 18:38:52 +0400
Subject: [PATCH 08/29] Allow mysql.proc to have extra (unknown) fields. This
allows 5.0 to work with 5.1 databases.
---
sql/sp.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sql/sp.cc b/sql/sp.cc
index c0e7d5e2271..75d6fa4618f 100644
--- a/sql/sp.cc
+++ b/sql/sp.cc
@@ -273,7 +273,7 @@ db_find_routine(THD *thd, int type, sp_name *name, sp_head **sphp)
if ((ret= db_find_routine_aux(thd, type, name, table)) != SP_OK)
goto done;
- if (table->s->fields != MYSQL_PROC_FIELD_COUNT)
+ if (table->s->fields < MYSQL_PROC_FIELD_COUNT)
{
ret= SP_GET_FIELD_FAILED;
goto done;
@@ -523,7 +523,7 @@ db_create_routine(THD *thd, int type, sp_head *sp)
strxmov(definer, thd->lex->definer->user.str, "@",
thd->lex->definer->host.str, NullS);
- if (table->s->fields != MYSQL_PROC_FIELD_COUNT)
+ if (table->s->fields < MYSQL_PROC_FIELD_COUNT)
{
ret= SP_GET_FIELD_FAILED;
goto done;
From 9f8593e81c99425a028d416854a172543a6f706d Mon Sep 17 00:00:00 2001
From: "anozdrin/alik@ibm." <>
Date: Wed, 25 Jul 2007 19:46:50 +0400
Subject: [PATCH 09/29] Patch inspired by BUG#10491: Server returns data as
charset binary SHOW CREATE TABLE or SELECT FROM I_S.
The problem is that mysqldump generates incorrect dump for a table
with non-ASCII column name if the mysqldump's character set is
ASCII.
The fix is to:
1. Switch character_set_client for the mysqldump's connection
to binary before issuing SHOW CREATE TABLE statement in order
to avoid conversion.
2. Dump switch character_set_client statements to UTF8 and back
for CREATE TABLE statement.
---
client/mysqldump.c | 30 ++++-
mysql-test/r/mysqldump-max.result | 36 ++++++
mysql-test/r/mysqldump.result | 180 ++++++++++++++++++++++++++++++
mysql-test/r/openssl_1.result | 9 ++
mysql-test/r/show_check.result | 20 ++++
mysql-test/t/show_check.test | 57 ++++++++++
6 files changed, 329 insertions(+), 3 deletions(-)
diff --git a/client/mysqldump.c b/client/mysqldump.c
index f72cb0171e1..c745ca10272 100644
--- a/client/mysqldump.c
+++ b/client/mysqldump.c
@@ -992,6 +992,21 @@ static int mysql_query_with_error_report(MYSQL *mysql_con, MYSQL_RES **res,
return 0;
}
+
+static int switch_character_set_results(MYSQL *mysql, const char *cs_name)
+{
+ char query_buffer[QUERY_LENGTH];
+ size_t query_length;
+
+ query_length= my_snprintf(query_buffer,
+ sizeof (query_buffer),
+ "SET SESSION character_set_results = '%s'",
+ (const char *) cs_name);
+
+ return mysql_real_query(mysql, query_buffer, query_length);
+}
+
+
/*
Open a new .sql file to dump the table or view into
@@ -1671,7 +1686,10 @@ static uint get_table_structure(char *table, char *db, char *table_type,
MYSQL_FIELD *field;
my_snprintf(buff, sizeof(buff), "show create table %s", result_table);
- if (mysql_query_with_error_report(mysql, 0, buff))
+
+ if (switch_character_set_results(mysql, "binary") ||
+ mysql_query_with_error_report(mysql, &result, buff) ||
+ switch_character_set_results(mysql, default_charset))
DBUG_RETURN(0);
if (path)
@@ -1702,7 +1720,6 @@ static uint get_table_structure(char *table, char *db, char *table_type,
check_io(sql_file);
}
- result= mysql_store_result(mysql);
field= mysql_fetch_field_direct(result, 0);
if (strcmp(field->name, "View") == 0)
{
@@ -1794,7 +1811,14 @@ static uint get_table_structure(char *table, char *db, char *table_type,
}
row= mysql_fetch_row(result);
- fprintf(sql_file, "%s;\n", row[1]);
+
+ fprintf(sql_file,
+ "SET @saved_cs_client = @@character_set_client;\n"
+ "SET character_set_client = utf8;\n"
+ "%s;\n"
+ "SET character_set_client = @saved_cs_client;\n",
+ row[1]);
+
check_io(sql_file);
mysql_free_result(result);
}
diff --git a/mysql-test/r/mysqldump-max.result b/mysql-test/r/mysqldump-max.result
index 9ae3e368e28..261c7a7f197 100644
--- a/mysql-test/r/mysqldump-max.result
+++ b/mysql-test/r/mysqldump-max.result
@@ -93,55 +93,73 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET l
USE `test`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT DELAYED IGNORE INTO `t1` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
INSERT DELAYED IGNORE INTO `t2` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
DROP TABLE IF EXISTS `t3`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t3` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
INSERT DELAYED IGNORE INTO `t3` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
/*!40000 ALTER TABLE `t3` ENABLE KEYS */;
DROP TABLE IF EXISTS `t4`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t4` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
INSERT DELAYED IGNORE INTO `t4` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
/*!40000 ALTER TABLE `t4` ENABLE KEYS */;
DROP TABLE IF EXISTS `t5`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t5` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
INSERT DELAYED IGNORE INTO `t5` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
/*!40000 ALTER TABLE `t5` ENABLE KEYS */;
DROP TABLE IF EXISTS `t6`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t6` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t6` DISABLE KEYS */;
INSERT IGNORE INTO `t6` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
@@ -172,55 +190,73 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET l
USE `test`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT DELAYED INTO `t1` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
INSERT DELAYED INTO `t2` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
DROP TABLE IF EXISTS `t3`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t3` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
INSERT DELAYED INTO `t3` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
/*!40000 ALTER TABLE `t3` ENABLE KEYS */;
DROP TABLE IF EXISTS `t4`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t4` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
INSERT DELAYED INTO `t4` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
/*!40000 ALTER TABLE `t4` ENABLE KEYS */;
DROP TABLE IF EXISTS `t5`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t5` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
INSERT DELAYED INTO `t5` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
/*!40000 ALTER TABLE `t5` ENABLE KEYS */;
DROP TABLE IF EXISTS `t6`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t6` (
`id` int(8) default NULL,
`name` varchar(32) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t6` DISABLE KEYS */;
INSERT INTO `t6` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result
index da05fe7bc5b..73841a2150f 100644
--- a/mysql-test/r/mysqldump.result
+++ b/mysql-test/r/mysqldump.result
@@ -28,9 +28,12 @@ DROP TABLE t1;
CREATE TABLE t1 (a decimal(64, 20));
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
("0987654321098765432109876543210987654321");
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` decimal(64,20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
INSERT INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('987654321098765432109876543210987654321.00000000000000000000');
DROP TABLE t1;
#
@@ -40,9 +43,12 @@ CREATE TABLE t1 (a double);
INSERT INTO t1 VALUES ('-9e999999');
Warnings:
Warning 1264 Out of range value adjusted for column 'a' at row 1
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` double default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
INSERT INTO `t1` VALUES (RES);
DROP TABLE t1;
#
@@ -58,15 +64,21 @@ INSERT INTO t1 VALUES ('1.2345', 2.3456);
INSERT INTO t1 VALUES ("1.2345", 2.3456);
ERROR 42S22: Unknown column '1.2345' in 'field list'
SET SQL_MODE=@OLD_SQL_MODE;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` decimal(10,5) default NULL,
`b` float default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
INSERT INTO `t1` VALUES ('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456);
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` decimal(10,5) default NULL,
`b` float default NULL
);
+SET character_set_client = @saved_cs_client;
INSERT INTO `t1` VALUES ('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456);
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
@@ -80,10 +92,13 @@ INSERT INTO `t1` VALUES ('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456)
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` decimal(10,5) default NULL,
`b` float default NULL
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -106,10 +121,13 @@ UNLOCK TABLES;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` decimal(10,5) default NULL,
`b` float default NULL
);
+SET character_set_client = @saved_cs_client;
INSERT INTO `t1` VALUES ('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456);
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
@@ -185,9 +203,12 @@ INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'), (NULL);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=koi8r;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -218,9 +239,12 @@ INSERT INTO t1 VALUES (1), (2);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL40' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) TYPE=MyISAM;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -241,9 +265,12 @@ UNLOCK TABLES;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL323' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) TYPE=MyISAM;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -262,9 +289,12 @@ DROP TABLE t1;
# Bug #2592 'mysqldump doesn't quote "tricky" names correctly'
#
create table ```a` (i int);
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE ```a` (
`i` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
drop table ```a`;
#
# Bug #2591 "mysqldump quotes names inconsistently"
@@ -282,9 +312,12 @@ create table t1(a int);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -307,9 +340,12 @@ UNLOCK TABLES;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS "t1";
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE "t1" (
"a" int(11) default NULL
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES "t1" WRITE;
/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
@@ -335,9 +371,12 @@ set global sql_mode='ANSI_QUOTES';
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -360,9 +399,12 @@ UNLOCK TABLES;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS "t1";
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE "t1" (
"a" int(11) default NULL
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES "t1" WRITE;
/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
@@ -392,9 +434,12 @@ insert into t1 values (1),(2),(3);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
@@ -483,9 +528,12 @@ INSERT INTO t1 VALUES (_latin1 '
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` char(10) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -516,9 +564,12 @@ UNLOCK TABLES;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL323' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` char(10) default NULL
) TYPE=MyISAM;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -539,9 +590,12 @@ UNLOCK TABLES;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL323' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` char(10) default NULL
) TYPE=MyISAM;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -562,9 +616,12 @@ UNLOCK TABLES;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL323' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` char(10) default NULL
) TYPE=MyISAM;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -598,9 +655,12 @@ INSERT INTO t2 VALUES (4),(5),(6);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t2` WRITE;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
@@ -636,9 +696,12 @@ INSERT INTO `t1` VALUES (0x602010000280100005E71A);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`b` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -674,9 +737,12 @@ INSERT INTO t1 VALUES (4),(5),(6);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -705,9 +771,12 @@ UNLOCK TABLES;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT DELAYED IGNORE INTO `t1` VALUES (1),(2),(3),(4),(5),(6);
@@ -1071,6 +1140,8 @@ insert into t1 (F_8d3bba7425e7c98c50f52ca1b52d3735) values (1);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`F_c4ca4238a0b923820dcc509a6f75849b` int(11) default NULL,
`F_c81e728d9d4c2f636f067f89cc14862c` int(11) default NULL,
@@ -1403,6 +1474,7 @@ CREATE TABLE `t1` (
`F_6faa8040da20ef399b63a72d0e4ab575` int(11) default NULL,
`F_fe73f687e5bc5280214e0486b273a5f9` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -1443,9 +1515,12 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET l
USE `test`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -1484,13 +1559,19 @@ INSERT INTO t2 VALUES (1), (2);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -1513,13 +1594,19 @@ CREATE TABLE `t2` (
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -1719,17 +1806,26 @@ create table t3(a int);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t3`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t3` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -1759,9 +1855,12 @@ mysqldump: Got error: 1064: You have an error in your SQL syntax; check the manu
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
@@ -1792,12 +1891,15 @@ insert into t1 values (0815, 4711, 2006);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS "t1";
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE "t1" (
"a b" int(11) NOT NULL default '0',
"c""d" int(11) NOT NULL default '0',
"e`f" int(11) NOT NULL default '0',
PRIMARY KEY ("a b","c""d","e`f")
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES "t1" WRITE;
/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
@@ -1823,12 +1925,15 @@ UNLOCK TABLES;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a b` int(11) NOT NULL default '0',
`c"d` int(11) NOT NULL default '0',
`e``f` int(11) NOT NULL default '0',
PRIMARY KEY (`a b`,`c"d`,`e``f`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -1874,10 +1979,13 @@ create view v2 as select * from t2 where a like 'a%' with check option;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` varchar(30) default NULL,
KEY `a` (`a`(5))
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t2` WRITE;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
@@ -1955,9 +2063,12 @@ create view v1 as select * from t1;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -2012,10 +2123,13 @@ create view v2 as select * from t2 where a like 'a%' with check option;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` varchar(30) default NULL,
KEY `a` (`a`(5))
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t2` WRITE;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
@@ -2064,9 +2178,12 @@ INSERT INTO t1 VALUES ('\'');
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` char(10) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -2107,11 +2224,14 @@ select v3.a from v3, v1 where v1.a=v3.a and v3.b=3 limit 1;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL,
`b` int(11) default NULL,
`c` varchar(30) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -2227,10 +2347,13 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET l
USE `test`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL,
`b` bigint(20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -2262,9 +2385,12 @@ end */;;
DELIMITER ;
/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE */;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t2` WRITE;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
@@ -2307,10 +2433,13 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET l
USE `test`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL,
`b` bigint(20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -2318,9 +2447,12 @@ INSERT INTO `t1` VALUES (1,NULL),(2,NULL),(4,NULL),(11,NULL);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t2` WRITE;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
@@ -2444,9 +2576,12 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET l
USE `test`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`id` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -2534,10 +2669,13 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET l
USE `test`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`d` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
UNIQUE KEY `d` (`d`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -2568,10 +2706,13 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET l
USE `test`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`d` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
UNIQUE KEY `d` (`d`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -2618,9 +2759,12 @@ a2
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS "t1 test";
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE "t1 test" (
"a1" int(11) default NULL
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES "t1 test" WRITE;
/*!40000 ALTER TABLE "t1 test" DISABLE KEYS */;
@@ -2636,9 +2780,12 @@ INSERT INTO `t2 test` SET a2 = NEW.a1; END */;;
DELIMITER ;
/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE */;
DROP TABLE IF EXISTS "t2 test";
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE "t2 test" (
"a2" int(11) default NULL
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES "t2 test" WRITE;
/*!40000 ALTER TABLE "t2 test" DISABLE KEYS */;
@@ -2687,11 +2834,14 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET l
USE `test`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL,
`b` varchar(32) default NULL,
`c` varchar(32) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -2779,9 +2929,12 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET l
USE `test`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -2825,10 +2978,13 @@ insert into t1 values ('','');
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` binary(1) default NULL,
`b` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -2857,10 +3013,13 @@ UNLOCK TABLES;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` binary(1) default NULL,
`b` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -3015,9 +3174,12 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqldump_test_db` /*!40100 DEFAULT CH
USE `mysqldump_test_db`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`id` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -3062,11 +3224,14 @@ create view nasishnasifu as select mysqldump_tables.basetable.id from mysqldump_
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqldump_tables` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `mysqldump_tables`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `basetable` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`tag` varchar(64) default NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqldump_views` /*!40100 DEFAULT CHARACTER SET latin1 */;
@@ -3134,10 +3299,13 @@ mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SU
mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation (1227)
grant REPLICATION CLIENT on *.* to mysqltest_1@localhost;
CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=537;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL,
`b` varchar(34) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
drop table t1;
drop user mysqltest_1@localhost;
#
@@ -3226,22 +3394,31 @@ CREATE TABLE t1 (a int) ENGINE=merge UNION=(t2, t3);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t2`,`t3`);
+SET character_set_client = @saved_cs_client;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t2` WRITE;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
UNLOCK TABLES;
DROP TABLE IF EXISTS `t3`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t3` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t3` WRITE;
/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
@@ -3317,10 +3494,13 @@ drop database mysqldump_test_db;
#
CREATE TABLE t1 (c1 INT, c2 LONGBLOB);
INSERT INTO t1 SET c1=11, c2=REPEAT('q',509);
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`c1` int(11) default NULL,
`c2` longblob
);
+SET character_set_client = @saved_cs_client;
INSERT INTO `t1` VALUES (11,0x7171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171);
DROP TABLE t1;
#
diff --git a/mysql-test/r/openssl_1.result b/mysql-test/r/openssl_1.result
index 3f10eed7ad7..9c6c29eea47 100644
--- a/mysql-test/r/openssl_1.result
+++ b/mysql-test/r/openssl_1.result
@@ -77,9 +77,12 @@ INSERT INTO t1 VALUES (1), (2);
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -108,9 +111,12 @@ UNLOCK TABLES;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -139,9 +145,12 @@ UNLOCK TABLES;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result
index e4cdd4f183b..7e5dc7e61c1 100644
--- a/mysql-test/r/show_check.result
+++ b/mysql-test/r/show_check.result
@@ -1088,6 +1088,26 @@ DROP TABLE t1;
DROP VIEW v1;
DROP PROCEDURE p1;
DROP FUNCTION f1;
+set names koi8r;
+DROP DATABASE IF EXISTS mysqltest1;
+CREATE DATABASE mysqltest1;
+use mysqltest1;
+CREATE TABLE t1(ËÏÌÏÎËÁ1 INT);
+
+---> Dumping mysqltest1 to show_check.mysqltest1.sql
+
+
+DROP DATABASE mysqltest1;
+
+
+---> Restoring mysqltest1...
+SHOW CREATE TABLE mysqltest1.t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `ËÏÌÏÎËÁ1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP DATABASE mysqltest1;
+use test;
flush status;
show variables like "log_queries_not_using_indexes";
Variable_name Value
diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test
index a58d81a414b..4d470ee4233 100644
--- a/mysql-test/t/show_check.test
+++ b/mysql-test/t/show_check.test
@@ -559,6 +559,10 @@ show status like 'slow_queries';
# FROM I_S.
#
+#
+# Part 1: check that meta-data specifies not-binary character set.
+#
+
# Ensure that all needed objects are dropped.
--disable_warnings
@@ -766,6 +770,59 @@ DROP VIEW v1;
DROP PROCEDURE p1;
DROP FUNCTION f1;
+#
+# Part 2: check that table with non-latin1 characters are dumped/restored
+# correctly.
+#
+
+# Ensure that all needed objects are dropped.
+
+set names koi8r;
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1;
+--enable_warnings
+
+# Create objects.
+
+CREATE DATABASE mysqltest1;
+
+use mysqltest1;
+
+CREATE TABLE t1(ËÏÌÏÎËÁ1 INT);
+
+# Check:
+# - Dump mysqltest1;
+
+--echo
+--echo ---> Dumping mysqltest1 to show_check.mysqltest1.sql
+
+--exec $MYSQL_DUMP --default-character-set=latin1 --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/show_check.mysqltest1.sql
+
+# - Clean mysqltest1;
+
+--echo
+--echo
+
+DROP DATABASE mysqltest1;
+
+# - Restore mysqltest1;
+
+--echo
+--echo
+
+--echo ---> Restoring mysqltest1...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/show_check.mysqltest1.sql
+
+# - Check definition of the table.
+
+SHOW CREATE TABLE mysqltest1.t1;
+
+# Cleanup.
+
+DROP DATABASE mysqltest1;
+use test;
+
#
# Bug #28808: log_queries_not_using_indexes variable dynamic change is ignored
#
From 1adbecd9a67929f64967539d45781d6913a35e22 Mon Sep 17 00:00:00 2001
From: "iggy@amd64.(none)" <>
Date: Wed, 25 Jul 2007 13:18:12 -0400
Subject: [PATCH 10/29] Bug#24732 Executables do not include Vista manifests -
Sign executables with MySQL AB security certificate.
---
.bzrignore | 1 +
CMakeLists.txt | 38 ++++++++++++++++++++++++++++++++------
win/README | 3 ++-
win/create_manifest.js | 2 +-
win/mysql_manifest.cmake | 7 ++++---
5 files changed, 40 insertions(+), 11 deletions(-)
diff --git a/.bzrignore b/.bzrignore
index e7a7a1c27dc..759ca4a20bf 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -6,6 +6,7 @@
*.bin
*.vcproj.cmake
cmake_install.cmake
+*.cdf
*.core
*.d
*.da
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cdd0cde8b8d..3703548ebc3 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -139,21 +139,47 @@ ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D _CRT_SECURE_NO_DEPRECATE")
IF(EMBED_MANIFESTS)
- # Search for the Manifest tool. CMake will first search it's defaults
- # (CMAKE_FRAMEWORK_PATH, CMAKE_APPBUNDLE_PATH, CMAKE_PROGRAM_PATH and
- # the system PATH) followed by the listed paths which are the current
- # possible defaults and should be updated when necessary. The custom
- # manifests are designed to be compatible with all mt versions.
+ # Search for the tools (mt, makecat, signtool) necessary for embedding
+ # manifests and signing executables with the MySQL AB authenticode cert.
+ #
+ # CMake will first search it's defaults (CMAKE_FRAMEWORK_PATH,
+ # CMAKE_APPBUNDLE_PATH, CMAKE_PROGRAM_PATH and the system PATH) followed
+ # by the listed paths which are the current possible defaults and should be
+ # updated when necessary.
+ #
+ # The custom manifests are designed to be compatible with all mt versions.
+ # The MySQL AB Authenticode certificate is available only internally.
+ # Others should store a single signing certificate in a local cryptographic
+ # service provider and alter the signtool command as necessary.
FIND_PROGRAM(HAVE_MANIFEST_TOOL NAMES mt
PATHS
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/VC/bin"
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
+ FIND_PROGRAM(HAVE_CATALOG_TOOL NAMES makecat
+ PATHS
+ "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin")
+ FIND_PROGRAM(HAVE_SIGN_TOOL NAMES signtool
+ PATHS
+ "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
+ "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
+
IF(HAVE_MANIFEST_TOOL)
- MESSAGE(STATUS "Found Mainfest Tool. Embedding custom manifests.")
+ MESSAGE(STATUS "Found Mainfest Tool.")
ELSE(HAVE_MANIFEST_TOOL)
MESSAGE(FATAL_ERROR "Manifest tool, mt.exe, can't be found.")
ENDIF(HAVE_MANIFEST_TOOL)
+ IF(HAVE_CATALOG_TOOL)
+ MESSAGE(STATUS "Found Catalog Tool.")
+ ELSE(HAVE_CATALOG_TOOL)
+ MESSAGE(FATAL_ERROR "Catalog tool, makecat.exe, can't be found.")
+ ENDIF(HAVE_CATALOG_TOOL)
+ IF(HAVE_SIGN_TOOL)
+ MESSAGE(STATUS "Found Sign Tool. Embedding custom manifests and signing executables.")
+ ELSE(HAVE_SIGN_TOOL)
+ MESSAGE(FATAL_ERROR "Sign tool, signtool.exe, can't be found.")
+ ENDIF(HAVE_SIGN_TOOL)
+
# Disable automatic manifest generation.
STRING(REPLACE "/MANIFEST" "/MANIFEST:NO" CMAKE_EXE_LINKER_FLAGS
${CMAKE_EXE_LINKER_FLAGS})
diff --git a/win/README b/win/README
index 118d619226a..d13f37965c1 100644
--- a/win/README
+++ b/win/README
@@ -51,7 +51,8 @@ The options right now are
DISABLE_GRANT_OPTIONS Disables the use of --init-file and --skip-grant-tables
options of mysqld.exe
EMBED_MANIFESTS Embed custom manifests into final exes, otherwise VS
- default will be used.
+ default will be used. (Note - This option should only be
+ used by MySQL AB.)
So the command line could look like:
diff --git a/win/create_manifest.js b/win/create_manifest.js
index 8569bd508ff..dec8f6e62e2 100755
--- a/win/create_manifest.js
+++ b/win/create_manifest.js
@@ -56,7 +56,7 @@ try
manifest_xml+= "\t\r\n";
// Identify the application security requirements.
manifest_xml+= "\t\r\n";
diff --git a/win/mysql_manifest.cmake b/win/mysql_manifest.cmake
index 4c88be1d800..0d429e438d6 100755
--- a/win/mysql_manifest.cmake
+++ b/win/mysql_manifest.cmake
@@ -14,7 +14,8 @@ MACRO(MYSQL_EMBED_MANIFEST _target_name _required_privs)
ADD_CUSTOM_COMMAND(
TARGET ${_target_name}
POST_BUILD
- COMMAND mt.exe
- ARGS -nologo -manifest $(IntDir)\\$(TargetFileName).intermediate.manifest -outputresource:$(TargetPath)
- COMMENT "Embeds the manifest contents.")
+ COMMAND mt.exe ARGS -nologo -hashupdate -makecdfs -manifest $(IntDir)\\$(TargetFileName).intermediate.manifest -outputresource:$(TargetPath)
+ COMMAND makecat.exe ARGS $(IntDir)\\$(TargetFileName).intermediate.manifest.cdf
+ COMMAND signtool.exe ARGS sign /a /t http://timestamp.verisign.com/scripts/timstamp.dll $(TargetPath)
+ COMMENT "Embeds the manifest contents, creates a cryptographic catalog, signs the target with Authenticode certificate.")
ENDMACRO(MYSQL_EMBED_MANIFEST)
From 48dfd5c79612a5f98167e71faf98f0ec62726086 Mon Sep 17 00:00:00 2001
From: "gbichot@production.mysql.com" <>
Date: Wed, 25 Jul 2007 22:29:53 +0200
Subject: [PATCH 11/29] tmp_table_size is not about user-created temporary
tables, only internal ones (like those of GROUP BY): fixing the --help text.
---
sql/mysqld.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 61980fa1887..9eb3d157dcf 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -6181,7 +6181,8 @@ The minimum value for this variable is 4096.",
(gptr*) &opt_date_time_formats[MYSQL_TIMESTAMP_TIME],
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"tmp_table_size", OPT_TMP_TABLE_SIZE,
- "If an in-memory temporary table exceeds this size, MySQL will automatically convert it to an on-disk MyISAM table.",
+ "If an internal in-memory temporary table exceeds this size, MySQL will"
+ " automatically convert it to an on-disk MyISAM table.",
(gptr*) &global_system_variables.tmp_table_size,
(gptr*) &max_system_variables.tmp_table_size, 0, GET_ULL,
REQUIRED_ARG, 32*1024*1024L, 1024, MAX_MEM_TABLE_SIZE, 0, 1, 0},
From 560cad771a0b83799b24803540fabe3905ffcf85 Mon Sep 17 00:00:00 2001
From: "joerg@debian.(none)" <>
Date: Thu, 26 Jul 2007 12:52:13 +0200
Subject: [PATCH 12/29] Raise the 64 character limit for path names in the
error messages to 150 or 107 characters for those messages which are
generated by the embedded server during release builds.
This fixes bug#16635:
Error messages wrong: absolute path names, "%s" format code
See the bug report or the changelog for "sql/share/english/errmsg.txt"
for instructions how to do that with other languages,
even at the customer site, and for the restrictions to keep.
---
sql/share/english/errmsg.txt | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/sql/share/english/errmsg.txt b/sql/share/english/errmsg.txt
index 62c8f4f9991..d3a611529f2 100644
--- a/sql/share/english/errmsg.txt
+++ b/sql/share/english/errmsg.txt
@@ -21,7 +21,7 @@ character-set=latin1
"NO",
"YES",
"Can't create file '%-.64s' (errno: %d)",
-"Can't create table '%-.64s' (errno: %d)",
+"Can't create table '%-.150s' (errno: %d)",
"Can't create database '%-.64s' (errno: %d)",
"Can't create database '%-.64s'; database exists",
"Can't drop database '%-.64s'; database doesn't exist",
@@ -33,7 +33,7 @@ character-set=latin1
"Can't get working directory (errno: %d)",
"Can't lock file (errno: %d)",
"Can't open file: '%-.64s' (errno: %d)",
-"Can't find file: '%-.64s' (errno: %d)",
+"Can't find file: '%-.150s' (errno: %d)",
"Can't read dir of '%-.64s' (errno: %d)",
"Can't change dir to '%-.64s' (errno: %d)",
"Record has changed since last read in table '%-.64s'",
@@ -41,7 +41,7 @@ character-set=latin1
"Can't write; duplicate key in table '%-.64s'",
"Error on close of '%-.64s' (errno: %d)",
"Error reading file '%-.64s' (errno: %d)",
-"Error on rename of '%-.64s' to '%-.64s' (errno: %d)",
+"Error on rename of '%-.107s' to '%-.107s' (errno: %d)",
"Error writing file '%-.64s' (errno: %d)",
"'%-.64s' is locked against change",
"Sort aborted",
From 8f87bd6008b3580d20eba39442f475f23b15f6c0 Mon Sep 17 00:00:00 2001
From: "jperkin@production.mysql.com" <>
Date: Thu, 26 Jul 2007 12:57:46 +0200
Subject: [PATCH 13/29] Clean up the mysql_install_db script to ensure that a
sane environment is available and reduce the chance of failure. This should
fix bug#28585 which is caused by the script being quite random in how it
finds files it requires and not giving very good feedback to the user about
what went wrong.
Also update make_binary_distribution so that it provides the correct path
to the required SQL scripts when generating mysql_install_db. The script
only previously worked because of the permissive behaviour which looked
around the current working directory before the "correct" location. This
could lead to severe problems if the user happened to run the script from
a location which contained older or even broken copies of the SQL scripts.
We now require either a complete binary release (and the mysql_install_db
script ran from inside the extracted archive), or an installed compiled
tree, as this is the only way we can be sure everything that we need is
available and ready to run.
While working on this fix, also clean up the mysql_install_db script a lot
to make it simpler, easier to read, and hopefully less prone to bugs in
the future.
---
scripts/make_binary_distribution.sh | 2 +-
scripts/mysql_install_db.sh | 274 ++++++++++++++--------------
2 files changed, 136 insertions(+), 140 deletions(-)
diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh
index 9584721682f..dab1bbec956 100644
--- a/scripts/make_binary_distribution.sh
+++ b/scripts/make_binary_distribution.sh
@@ -318,7 +318,7 @@ if [ $BASE_SYSTEM != "netware" ] ; then
copyfileto $BASE/bin scripts/*
$BASE/bin/replace \@localstatedir\@ ./data \@bindir\@ ./bin \@scriptdir\@ \
./bin \@libexecdir\@ ./bin \@sbindir\@ ./bin \@prefix\@ . \@HOSTNAME\@ \
- @HOSTNAME@ \@pkgdatadir\@ ./support-files \
+ @HOSTNAME@ \@pkgdatadir\@ ./share \
< scripts/mysql_install_db.sh > $BASE/scripts/mysql_install_db
$BASE/bin/replace \@prefix\@ /usr/local/mysql \@bindir\@ ./bin \
\@sbindir\@ ./bin \@libexecdir\@ ./bin \
diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh
index 934d245db15..c5d532ee4ed 100644
--- a/scripts/mysql_install_db.sh
+++ b/scripts/mysql_install_db.sh
@@ -18,26 +18,65 @@
#
# All unrecognized arguments to this script are passed to mysqld.
+force=0
in_rpm=0
+ip_only=0
windows=0
-defaults=""
-user=""
case "$1" in
- --no-defaults|--defaults-file=*|--defaults-extra-file=*)
- defaults="$1"; shift
- ;;
+ --no-defaults|--defaults-file=*|--defaults-extra-file=*)
+ defaults="$1"; shift
+ ;;
esac
+usage()
+{
+ cat <&1`
if [ $? -ne 0 ]
@@ -244,39 +247,35 @@ then
fi
fi
-if test "$ip_only" = "1"
+if test "$ip_only" -eq 1
then
- ip=`echo "$resolved" | awk '/ /{print $6}'`
- hostname=$ip
+ hostname=`echo "$resolved" | awk '/ /{print $6}'`
fi
# Create database directories mysql & test
-if test ! -d $ldata; then
- mkdir $ldata;
- chmod 700 $ldata ;
-fi
-if test ! -d $ldata/mysql; then
- mkdir $ldata/mysql;
- chmod 700 $ldata/mysql ;
-fi
-if test ! -d $ldata/test; then
- mkdir $ldata/test;
- chmod 700 $ldata/test ;
-fi
-if test -w / -a ! -z "$user"; then
- chown $user $ldata $ldata/mysql $ldata/test;
-fi
+for dir in $ldata $ldata/mysql $ldata/test
+do
+ if test ! -d $dir
+ then
+ mkdir -p $dir
+ chmod 700 $dir
+ fi
+ if test -w / -a ! -z "$user"
+ then
+ chown $user $dir
+ fi
+done
-if test -n "$user"; then
+if test -n "$user"
+then
args="$args --user=$user"
fi
# Peform the install of system tables
mysqld_bootstrap="${MYSQLD_BOOTSTRAP-$mysqld}"
mysqld_install_cmd_line="$mysqld_bootstrap $defaults $mysqld_opt --bootstrap \
---basedir=$basedir --datadir=$ldata --skip-innodb \
---skip-bdb --skip-ndbcluster $args --max_allowed_packet=8M \
---net_buffer_length=16K"
+ --basedir=$basedir --datadir=$ldata --skip-innodb --skip-bdb \
+ --skip-ndbcluster $args --max_allowed_packet=8M --net_buffer_length=16K"
# Pipe mysql_system_tables.sql to "mysqld --bootstrap"
s_echo "Installing MySQL system tables..."
@@ -284,23 +283,20 @@ if `(echo "use mysql;"; cat $create_system_tables $fill_system_tables) | $mysqld
then
s_echo "OK"
- if test -n "$fill_help_tables"
+ s_echo "Filling help tables..."
+ # Pipe fill_help_tables.sql to "mysqld --bootstrap"
+ if `(echo "use mysql;"; cat $fill_help_tables) | $mysqld_install_cmd_line`
then
- s_echo "Filling help tables..."
- # Pipe fill_help_tables.sql to "mysqld --bootstrap"
- if `(echo "use mysql;"; cat $fill_help_tables) | $mysqld_install_cmd_line`
- then
- # Fill suceeded
- s_echo "OK"
- else
- echo ""
- echo "WARNING: HELP FILES ARE NOT COMPLETELY INSTALLED!"
- echo "The \"HELP\" command might not work properly"
- echo ""
- fi
+ # Fill suceeded
+ s_echo "OK"
+ else
+ echo
+ echo "WARNING: HELP FILES ARE NOT COMPLETELY INSTALLED!"
+ echo "The \"HELP\" command might not work properly"
+ echo
fi
- s_echo ""
+ s_echo
s_echo "To start mysqld at boot time you have to copy"
s_echo "support-files/mysql.server to the right place for your system"
s_echo
@@ -319,7 +315,7 @@ then
echo "$bindir/mysqladmin -u root -h $hostname password 'new-password'"
echo "See the manual for more instructions."
- if test "$in_rpm" = "0"
+ if test "$in_rpm" -eq 0
then
echo "You can start the MySQL daemon with:"
echo "cd @prefix@ ; $bindir/mysqld_safe &"
From 2c95b977874d232cc0fc935d5ac0e0c85a5db682 Mon Sep 17 00:00:00 2001
From: "jperkin@production.mysql.com" <>
Date: Thu, 26 Jul 2007 14:27:36 +0200
Subject: [PATCH 14/29] Apply a few more cleanups to improve the robustness of
mysql_install_db
---
scripts/mysql_install_db.sh | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh
index c5d532ee4ed..760ece5aaed 100644
--- a/scripts/mysql_install_db.sh
+++ b/scripts/mysql_install_db.sh
@@ -18,6 +18,15 @@
#
# All unrecognized arguments to this script are passed to mysqld.
+basedir=""
+ldata=""
+srcdir=""
+
+args=""
+defaults=""
+mysqld_opt=""
+user=""
+
force=0
in_rpm=0
ip_only=0
@@ -87,7 +96,8 @@ parse_arguments()
shift
fi
- for arg do
+ for arg
+ do
case "$arg" in
--force) force=1 ;;
--basedir=*) basedir=`parse_arg "$arg"` ;;
@@ -203,11 +213,10 @@ then
mysqld="./sql/mysqld"
if test -n "$srcdir" -a -f "$srcdir/sql/share/english/errmsg.sys"
then
- langdir="$srcdir/sql/share/english"
+ mysqld_opt="--language=$srcdir/sql/share/english"
else
- langdir="./sql/share/english"
+ mysqld_opt="./sql/share/english"
fi
- mysqld_opt="--language=$langdir"
fi
# Make sure mysqld is available in default location (--basedir option is
From d2936fad10513227fa6cfc5a7b92461e30d1cc88 Mon Sep 17 00:00:00 2001
From: "jperkin@production.mysql.com" <>
Date: Thu, 26 Jul 2007 14:31:11 +0200
Subject: [PATCH 15/29] mysql_install_db.sh: Fix error in previous change,
correct --language argument.
---
scripts/mysql_install_db.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh
index 760ece5aaed..7e1f6217b7b 100644
--- a/scripts/mysql_install_db.sh
+++ b/scripts/mysql_install_db.sh
@@ -215,7 +215,7 @@ then
then
mysqld_opt="--language=$srcdir/sql/share/english"
else
- mysqld_opt="./sql/share/english"
+ mysqld_opt="--language=./sql/share/english"
fi
fi
From 1e455b4c28ae1e14f733f51189ff03cadbc15412 Mon Sep 17 00:00:00 2001
From: "joerg@debian.(none)" <>
Date: Thu, 26 Jul 2007 17:25:03 +0200
Subject: [PATCH 16/29] Remove the "row_lock" suite from the sources.
For more information, see WL#3866 and the bugs numbered 28685 and 20390.
---
Makefile.am | 3 +-
.../suite/row_lock/include/row_lock.inc | 83 ----
.../row_lock/include/row_lock_big_tab.inc | 94 -----
.../row_lock/include/row_lock_big_tab_1.inc | 93 -----
.../row_lock/include/row_lock_big_tab_2.inc | 93 -----
.../suite/row_lock/include/row_lock_trig.inc | 96 -----
.../suite/row_lock/include/row_lock_view.inc | 89 -----
.../row_lock/include/row_lock_view_mix.inc | 92 -----
.../include/row_lock_view_storedp.inc | 126 -------
.../row_lock/include/row_lock_view_trig.inc | 99 -----
.../suite/row_lock/r/innodb_row_lock_1.result | 142 -------
.../suite/row_lock/r/innodb_row_lock_2.result | 32 --
.../suite/row_lock/r/innodb_row_lock_3.result | 32 --
.../suite/row_lock/r/innodb_row_lock_4.result | 142 -------
.../suite/row_lock/r/innodb_row_lock_5.result | 32 --
.../row_lock/r/innodb_row_lock_big_tab.result | 97 -----
.../r/innodb_row_lock_big_tab_1.result | 145 -------
.../r/innodb_row_lock_big_tab_2.result | 113 ------
.../row_lock/r/innodb_row_lock_trig_1.result | 151 --------
.../row_lock/r/innodb_row_lock_trig_2.result | 37 --
.../row_lock/r/innodb_row_lock_view_1.result | 34 --
.../row_lock/r/innodb_row_lock_view_2.result | 40 --
.../r/innodb_row_lock_view_mix_1.result | 48 ---
.../r/innodb_row_lock_view_mix_2.result | 40 --
.../r/innodb_row_lock_view_storedp_1.result | 312 ---------------
.../r/innodb_row_lock_view_storedp_2.result | 47 ---
.../r/innodb_row_lock_view_trig_1.result | 183 ---------
.../r/innodb_row_lock_view_trig_2.result | 38 --
.../suite/row_lock/r/ndb_row_lock_1.result | 139 -------
.../suite/row_lock/r/ndb_row_lock_2.result | 31 --
.../suite/row_lock/r/ndb_row_lock_3.result | 30 --
.../suite/row_lock/r/ndb_row_lock_4.result | 139 -------
.../suite/row_lock/r/ndb_row_lock_5.result | 30 --
.../row_lock/r/ndb_row_lock_big_tab.result | 177 ---------
.../row_lock/r/ndb_row_lock_big_tab_1.result | 357 ------------------
.../row_lock/r/ndb_row_lock_big_tab_2.result | 255 -------------
.../row_lock/r/ndb_row_lock_trig_1.result | 148 --------
.../row_lock/r/ndb_row_lock_trig_2.result | 35 --
.../row_lock/r/ndb_row_lock_view_1.result | 194 ----------
.../row_lock/r/ndb_row_lock_view_2.result | 200 ----------
.../row_lock/r/ndb_row_lock_view_mix_1.result | 169 ---------
.../row_lock/r/ndb_row_lock_view_mix_2.result | 38 --
.../r/ndb_row_lock_view_storedp_1.result | 309 ---------------
.../r/ndb_row_lock_view_storedp_2.result | 46 ---
.../r/ndb_row_lock_view_trig_1.result | 180 ---------
.../r/ndb_row_lock_view_trig_2.result | 36 --
mysql-test/suite/row_lock/readme.txt | 9 -
.../suite/row_lock/summary_of_sel_test.txt | 36 --
.../suite/row_lock/t/innodb_row_lock_1.test | 9 -
.../suite/row_lock/t/innodb_row_lock_2.test | 9 -
.../suite/row_lock/t/innodb_row_lock_3.test | 9 -
.../suite/row_lock/t/innodb_row_lock_4.test | 9 -
.../suite/row_lock/t/innodb_row_lock_5.test | 9 -
.../row_lock/t/innodb_row_lock_big_tab.test | 9 -
.../row_lock/t/innodb_row_lock_big_tab_1.test | 10 -
.../row_lock/t/innodb_row_lock_big_tab_2.test | 10 -
.../row_lock/t/innodb_row_lock_trig_1.test | 9 -
.../row_lock/t/innodb_row_lock_trig_2.test | 9 -
.../row_lock/t/innodb_row_lock_view_1.test | 9 -
.../row_lock/t/innodb_row_lock_view_2.test | 9 -
.../t/innodb_row_lock_view_mix_1.test | 9 -
.../t/innodb_row_lock_view_mix_2.test | 10 -
.../t/innodb_row_lock_view_storedp_1.test | 9 -
.../t/innodb_row_lock_view_storedp_2.test | 9 -
.../t/innodb_row_lock_view_trig_1.test | 9 -
.../t/innodb_row_lock_view_trig_2.test | 9 -
.../suite/row_lock/t/ndb_row_lock_1.test | 6 -
.../suite/row_lock/t/ndb_row_lock_2.test | 6 -
.../suite/row_lock/t/ndb_row_lock_3.test | 6 -
.../suite/row_lock/t/ndb_row_lock_4.test | 6 -
.../suite/row_lock/t/ndb_row_lock_5.test | 6 -
.../row_lock/t/ndb_row_lock_big_tab.test | 6 -
.../row_lock/t/ndb_row_lock_big_tab_1.test | 7 -
.../row_lock/t/ndb_row_lock_big_tab_2.test | 7 -
.../suite/row_lock/t/ndb_row_lock_trig_1.test | 6 -
.../suite/row_lock/t/ndb_row_lock_trig_2.test | 6 -
.../suite/row_lock/t/ndb_row_lock_view_1.test | 7 -
.../suite/row_lock/t/ndb_row_lock_view_2.test | 6 -
.../row_lock/t/ndb_row_lock_view_mix_1.test | 6 -
.../row_lock/t/ndb_row_lock_view_mix_2.test | 6 -
.../t/ndb_row_lock_view_storedp_1.test | 6 -
.../t/ndb_row_lock_view_storedp_2.test | 6 -
.../row_lock/t/ndb_row_lock_view_trig_1.test | 6 -
.../row_lock/t/ndb_row_lock_view_trig_2.test | 6 -
84 files changed, 1 insertion(+), 5366 deletions(-)
delete mode 100644 mysql-test/suite/row_lock/include/row_lock.inc
delete mode 100644 mysql-test/suite/row_lock/include/row_lock_big_tab.inc
delete mode 100644 mysql-test/suite/row_lock/include/row_lock_big_tab_1.inc
delete mode 100644 mysql-test/suite/row_lock/include/row_lock_big_tab_2.inc
delete mode 100644 mysql-test/suite/row_lock/include/row_lock_trig.inc
delete mode 100644 mysql-test/suite/row_lock/include/row_lock_view.inc
delete mode 100644 mysql-test/suite/row_lock/include/row_lock_view_mix.inc
delete mode 100644 mysql-test/suite/row_lock/include/row_lock_view_storedp.inc
delete mode 100644 mysql-test/suite/row_lock/include/row_lock_view_trig.inc
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_1.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_2.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_3.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_4.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_5.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_big_tab.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_big_tab_1.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_big_tab_2.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_trig_1.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_trig_2.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_view_1.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_view_2.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_view_mix_1.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_view_mix_2.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_view_storedp_1.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_view_storedp_2.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_view_trig_1.result
delete mode 100644 mysql-test/suite/row_lock/r/innodb_row_lock_view_trig_2.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_1.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_2.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_3.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_4.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_5.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_big_tab.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_big_tab_1.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_big_tab_2.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_trig_1.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_trig_2.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_view_1.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_view_2.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_view_mix_1.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_view_mix_2.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_view_storedp_1.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_view_storedp_2.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_view_trig_1.result
delete mode 100644 mysql-test/suite/row_lock/r/ndb_row_lock_view_trig_2.result
delete mode 100644 mysql-test/suite/row_lock/readme.txt
delete mode 100644 mysql-test/suite/row_lock/summary_of_sel_test.txt
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_1.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_2.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_3.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_4.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_5.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_big_tab.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_big_tab_1.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_big_tab_2.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_trig_1.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_trig_2.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_view_1.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_view_2.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_view_mix_1.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_view_mix_2.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_view_storedp_1.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_view_storedp_2.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_view_trig_1.test
delete mode 100644 mysql-test/suite/row_lock/t/innodb_row_lock_view_trig_2.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_1.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_2.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_3.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_4.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_5.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_big_tab.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_big_tab_1.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_big_tab_2.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_trig_1.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_trig_2.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_view_1.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_view_2.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_view_mix_1.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_view_mix_2.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_view_storedp_1.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_view_storedp_2.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_view_trig_1.test
delete mode 100644 mysql-test/suite/row_lock/t/ndb_row_lock_view_trig_2.test
diff --git a/Makefile.am b/Makefile.am
index 186a3ec2453..66daff4bd68 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,6 +20,7 @@ AUTOMAKE_OPTIONS = foreign
# These are built from source in the Docs directory
EXTRA_DIST = INSTALL-SOURCE INSTALL-WIN-SOURCE \
README COPYING EXCEPTIONS-CLIENT CMakeLists.txt
+
SUBDIRS = . include @docs_dirs@ @zlib_dir@ @yassl_dir@ \
@readline_topdir@ sql-common scripts \
@thread_dirs@ pstack \
@@ -157,8 +158,6 @@ test-bt:
@PERL@ ./mysql-test-run.pl --force --comment=funcs1_ps --ps-protocol --suite=funcs_1
-cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --force --comment=funcs2 --suite=funcs_2
- -cd mysql-test ; MTR_BUILD_THREAD=auto \
- @PERL@ ./mysql-test-run.pl --force --comment=rowlock --suite=row_lock
-if [ -d mysql-test/suite/nist ] ; then \
cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=NIST+normal --force --suite=nist ; \
diff --git a/mysql-test/suite/row_lock/include/row_lock.inc b/mysql-test/suite/row_lock/include/row_lock.inc
deleted file mode 100644
index 8572bc0246e..00000000000
--- a/mysql-test/suite/row_lock/include/row_lock.inc
+++ /dev/null
@@ -1,83 +0,0 @@
---disable_warnings
-DROP TABLE IF EXISTS t1, t2;
---enable_warnings
-SET autocommit=0;
-# Create additional connections used through test
-CONNECT (root1, localhost, root,,);
-SET autocommit=0;
---echo connection default;
-CONNECTION default;
-eval CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-eval $indext1;
-eval CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-eval $indext2;
-COMMIT;
-SELECT @@global.tx_isolation;
-
-# Both transaction are able to update the tables
-eval EXPLAIN $select;
-eval $select;
-
---echo connection root1;
-CONNECTION root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE t1,t2 SET t1.i=223,t2.i=223 WHERE t1.i=123 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-UPDATE t1,t2 SET t1.i=226,t2.i=226 WHERE t1.i=126 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE t1,t2 SET t1.i=224,t2.i=224 WHERE t1.i=124 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-COMMIT;
-
---echo connection root1;
-CONNECTION root1;
-ROLLBACK;
-
---echo connection default;
-CONNECTION default;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-DISCONNECT root1;
---echo connection default;
-CONNECTION default;
-DROP TABLE t1, t2;
-
diff --git a/mysql-test/suite/row_lock/include/row_lock_big_tab.inc b/mysql-test/suite/row_lock/include/row_lock_big_tab.inc
deleted file mode 100644
index f0823067eac..00000000000
--- a/mysql-test/suite/row_lock/include/row_lock_big_tab.inc
+++ /dev/null
@@ -1,94 +0,0 @@
---disable_warnings
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
---enable_warnings
-SET autocommit=0;
-# Create additional connections used through test
-CONNECT (root1, localhost, root,,);
-SET autocommit=0;
---echo connection default;
-CONNECTION default;
-eval CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-eval $indext1;
-eval CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-eval $indext2;
-DELIMITER |;
-CREATE PROCEDURE fill_t1 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
- INSERT INTO t1 VALUES (cnt, cnt+100, cnt, cnt+100);
- SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t1() RETURNS int
-BEGIN
- DECLARE res int DEFAULT 0;
- SELECT count(*)/2 INTO res FROM t1;
- RETURN res;
-END;
-|
-CREATE PROCEDURE fill_t2 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
- INSERT INTO t2 VALUES (cnt, cnt+100, cnt, cnt+100);
- SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t2() RETURNS int
-BEGIN
- DECLARE res int DEFAULT 0;
- SELECT count(*)/2 INTO res FROM t2;
- RETURN res;
-END;
-|
-DELIMITER ;|
-CALL fill_t1 (10);
-CALL fill_t2 (10);
-COMMIT;
-SELECT @@global.tx_isolation;
-# With the two separate selects (without join) the differs from
-# that select with join.
-
-# Both transaction are able to update the tables
-eval EXPLAIN $select;
-eval $select;
-
---echo connection root1;
-CONNECTION root1;
-SELECT k from t1 WHERE k < half_t1();
-SELECT k from t1 WHERE k >= half_t1();
-UPDATE t1,t2 SET t1.i=1111,t2.i=2222 WHERE t1.k < half_t1() AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE t1,t2 SET t1.i=3333,t2.i=4444 WHERE t1.k >= half_t1() AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-COMMIT;
-
---echo connection root1;
-CONNECTION root1;
-ROLLBACK;
-
---echo connection default;
-CONNECTION default;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-DISCONNECT root1;
---echo connection default;
-CONNECTION default;
-DROP VIEW IF EXISTS v1;
-DROP TABLE t1, t2;
-#DROP VIEW v1;
-
diff --git a/mysql-test/suite/row_lock/include/row_lock_big_tab_1.inc b/mysql-test/suite/row_lock/include/row_lock_big_tab_1.inc
deleted file mode 100644
index 8535c016819..00000000000
--- a/mysql-test/suite/row_lock/include/row_lock_big_tab_1.inc
+++ /dev/null
@@ -1,93 +0,0 @@
---disable_warnings
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
---enable_warnings
-SET autocommit=0;
-# Create additional connections used through test
-CONNECT (root1, localhost, root,,);
-SET autocommit=0;
---echo connection default;
-CONNECTION default;
-eval CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-eval $indext1;
-eval CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-eval $indext2;
-DELIMITER |;
-CREATE PROCEDURE fill_t1 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
- INSERT INTO t1 VALUES (cnt, cnt+100, cnt, cnt+100);
- SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t1() RETURNS int
-BEGIN
- DECLARE res int DEFAULT 0;
- SELECT MOD(k,2) INTO res FROM t1;
- RETURN res;
-END;
-|
-CREATE PROCEDURE fill_t2 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
- INSERT INTO t2 VALUES (cnt, cnt+100, cnt, cnt+100);
- SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t2() RETURNS int
-BEGIN
- DECLARE res int DEFAULT 0;
- SELECT MOD(k,2) INTO res FROM t2;
- RETURN res;
-END;
-|
-DELIMITER ;|
-eval CALL fill_t1 ($nbrows);
-eval CALL fill_t2 ($nbrows);
-COMMIT;
-SELECT @@global.tx_isolation;
-# With the two separate selects (without join) the differs from
-# that select with join.
-
-# Both transaction are able to update the tables
-eval EXPLAIN $select;
-eval $select;
-
---echo connection root1;
-CONNECTION root1;
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.k % 2= 1 AND t1.k = t2.k LOCK IN SHARE MODE;
-UPDATE t1,t2 SET t1.i=1111,t2.i=2222 WHERE t1.k % 2 = 1 AND t1.k = t2.k;
-SELECT * FROM t1 WHERE k < 20 ORDER BY t1.k;
-SELECT * FROM t2 WHERE k < 20 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE t1,t2 SET t1.i=3333,t2.i=4444 WHERE t1.k % 2 = 0 AND t1.k = t2.k;
-SELECT * FROM t1 WHERE k < 20 ORDER BY t1.k;
-SELECT * FROM t2 WHERE k < 20 ORDER BY t2.k;
-
-COMMIT;
-
---echo connection root1;
-CONNECTION root1;
-ROLLBACK;
-
---echo connection default;
-CONNECTION default;
-SELECT * FROM t1 WHERE k < 40 ORDER BY t1.k;
-SELECT * FROM t2 WHERE k < 40 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-SELECT * FROM t1 WHERE k < 40 ORDER BY t1.k;
-SELECT * FROM t2 WHERE k < 40 ORDER BY t2.k;
-DISCONNECT root1;
---echo connection default;
-CONNECTION default;
-DROP TABLE t1, t2;
-
-
diff --git a/mysql-test/suite/row_lock/include/row_lock_big_tab_2.inc b/mysql-test/suite/row_lock/include/row_lock_big_tab_2.inc
deleted file mode 100644
index 050f2a54016..00000000000
--- a/mysql-test/suite/row_lock/include/row_lock_big_tab_2.inc
+++ /dev/null
@@ -1,93 +0,0 @@
---disable_warnings
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
---enable_warnings
-SET autocommit=0;
-# Create additional connections used through test
-CONNECT (root1, localhost, root,,);
-SET autocommit=0;
---echo connection default;
-CONNECTION default;
-eval CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-eval $indext1;
-eval CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-eval $indext2;
-DELIMITER |;
-CREATE PROCEDURE fill_t1 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
- INSERT INTO t1 VALUES (cnt, cnt+100, cnt, cnt+100);
- SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t1() RETURNS int
-BEGIN
- DECLARE res int DEFAULT 0;
- SELECT MOD(k,2) INTO res FROM t1;
- RETURN res;
-END;
-|
-CREATE PROCEDURE fill_t2 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
- INSERT INTO t2 VALUES (cnt, cnt+100, cnt, cnt+100);
- SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t2() RETURNS int
-BEGIN
- DECLARE res int DEFAULT 0;
- SELECT MOD(k,2) INTO res FROM t2;
- RETURN res;
-END;
-|
-DELIMITER ;|
-eval CALL fill_t1 ($nbrows);
-eval CALL fill_t2 ($nbrows);
-COMMIT;
-SELECT @@global.tx_isolation;
-# With the two separate selects (without join) the differs from
-# that select with join.
-
-# Both transaction are able to update the tables
-eval EXPLAIN $select;
-eval $select;
-
---echo connection root1;
-CONNECTION root1;
-#SELECT t1.i,t2.i FROM t1,t2 WHERE t1.k % 2= 1 AND t1.k = t2.k FOR UPDATE;
-DELETE FROM t1 WHERE t1.k % 2 = 1;
-SELECT * FROM t1 WHERE k < 20 ORDER BY t1.k;
-SELECT * FROM t2 WHERE k < 20 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE t1,t2 SET t1.i=3333,t2.i=4444 WHERE t1.k % 2 = 0 AND t1.k = t2.k;
-SELECT * FROM t1 WHERE k < 20 ORDER BY t1.k;
-SELECT * FROM t2 WHERE k < 20 ORDER BY t2.k;
-
-COMMIT;
-
---echo connection root1;
-CONNECTION root1;
-ROLLBACK;
-
---echo connection default;
-CONNECTION default;
-SELECT * FROM t1 WHERE k < 40 ORDER BY t1.k;
-SELECT * FROM t2 WHERE k < 40 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-SELECT * FROM t1 WHERE k < 40 ORDER BY t1.k;
-SELECT * FROM t2 WHERE k < 40 ORDER BY t2.k;
-DISCONNECT root1;
---echo connection default;
-CONNECTION default;
-DROP TABLE t1, t2;
-
-
diff --git a/mysql-test/suite/row_lock/include/row_lock_trig.inc b/mysql-test/suite/row_lock/include/row_lock_trig.inc
deleted file mode 100644
index 384f00f243e..00000000000
--- a/mysql-test/suite/row_lock/include/row_lock_trig.inc
+++ /dev/null
@@ -1,96 +0,0 @@
---disable_warnings
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
---enable_warnings
-SET autocommit=0;
-# Create additional connections used through test
-CONNECT (root1, localhost, root,,);
-SET autocommit=0;
---echo connection default;
-CONNECTION default;
-eval CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-eval $indext1;
-eval CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-eval $indext2;
-DELIMITER |;
-
-CREATE TRIGGER trig_t2 AFTER UPDATE ON t2
- FOR EACH ROW BEGIN
- UPDATE t1 SET l = NEW.i WHERE i = OLD.i;
- END;
-|
-
-DELIMITER ;|
-
-COMMIT;
-SELECT @@global.tx_isolation;
-# With the two separate selects (without join) the differs from
-# that select with join.
-
-# Both transaction are able to update the tables
-eval EXPLAIN $select;
-eval $select;
---echo connection root1;
-CONNECTION root1;
-UPDATE t2 SET t2.i=225 WHERE t2.i=125;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE t2 SET t2.i=223 WHERE t2.i=123;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-UPDATE t2 SET t2.i=226 WHERE t2.i=126;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE t2 SET t2.i=224 WHERE t2.i=124;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-COMMIT;
-
---echo connection root1;
-CONNECTION root1;
-ROLLBACK;
-
---echo connection default;
-CONNECTION default;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-DISCONNECT root1;
---echo connection default;
-CONNECTION default;
-DROP TABLE t1, t2;
-#DROP VIEW v1;
-
diff --git a/mysql-test/suite/row_lock/include/row_lock_view.inc b/mysql-test/suite/row_lock/include/row_lock_view.inc
deleted file mode 100644
index fbed8f64d3a..00000000000
--- a/mysql-test/suite/row_lock/include/row_lock_view.inc
+++ /dev/null
@@ -1,89 +0,0 @@
---disable_warnings
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
---enable_warnings
-SET autocommit=0;
-# Create additional connections used through test
-CONNECT (root1, localhost, root,,);
-SET autocommit=0;
---echo connection default;
-CONNECTION default;
-eval CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-eval $indext1;
-eval CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-eval $indext2;
-CREATE VIEW v1 AS SELECT t1.i, t2.l from t1,t2;
-COMMIT;
-SELECT @@global.tx_isolation;
-# With the two separate selects (without join) the differs from
-# that select with join.
-
-# Both transaction are able to update the tables
-eval EXPLAIN $select;
-eval $select;
-
---echo connection root1;
-CONNECTION root1;
-UPDATE v1 SET i=325 where i=125;
-SELECT * FROM v1 ORDER BY i,l;
-SELECT * FROM t1 ORDER BY t1.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE v1 SET i=323 where i=123;
-SELECT * FROM v1 ORDER BY i,l;
-SELECT * FROM t1 ORDER BY t1.k;
-
---echo connection root1;
-CONNECTION root1;
-UPDATE v1 SET i=326 where i=126;
-SELECT * FROM v1 ORDER BY i,l;
-SELECT * FROM t1 ORDER BY t1.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE v1 SET i=324 where i=124;
-SELECT * FROM v1 ORDER BY i,l;
-SELECT * FROM t1 ORDER BY t1.k;
-
---echo connection root1;
-CONNECTION root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-COMMIT;
-
---echo connection root1;
-CONNECTION root1;
-ROLLBACK;
-
---echo connection default;
-CONNECTION default;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-DISCONNECT root1;
---echo connection default;
-CONNECTION default;
-DROP VIEW IF EXISTS v1;
-DROP TABLE t1, t2;
-#DROP VIEW v1;
-
diff --git a/mysql-test/suite/row_lock/include/row_lock_view_mix.inc b/mysql-test/suite/row_lock/include/row_lock_view_mix.inc
deleted file mode 100644
index 9e8cf3d34fc..00000000000
--- a/mysql-test/suite/row_lock/include/row_lock_view_mix.inc
+++ /dev/null
@@ -1,92 +0,0 @@
---disable_warnings
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
---enable_warnings
-SET autocommit=0;
-# Create additional connections used through test
-CONNECT (root1, localhost, root,,);
-SET autocommit=0;
---echo connection default;
-CONNECTION default;
-eval CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-eval $indext1;
-eval CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-eval $indext2;
-CREATE VIEW v1 AS SELECT t1.i, t2.l from t1,t2;
-COMMIT;
-SELECT @@global.tx_isolation;
-# With the two separate selects (without join) the differs from
-# that select with join.
-
-# Both transaction are able to update the tables
-eval EXPLAIN $select;
-eval $select;
-
---echo connection root1;
-CONNECTION root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-#UPDATE v1 SET i=325 where i=125;
-#SELECT * FROM v1 ORDER BY i,l;
-#SELECT * FROM t1 ORDER BY t1.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE v1 SET i=323 where i=123;
-SELECT * FROM v1 ORDER BY i,l;
-SELECT * FROM t1 ORDER BY t1.k;
-
---echo connection root1;
-CONNECTION root1;
-UPDATE t1,t2 SET t1.i=226,t2.i=226 WHERE t1.i=126 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE v1 SET i=324 where i=124;
-SELECT * FROM v1 ORDER BY i,l;
-SELECT * FROM t1 ORDER BY t1.k;
-
---echo connection root1;
-CONNECTION root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-COMMIT;
-
---echo connection root1;
-CONNECTION root1;
-ROLLBACK;
-
---echo connection default;
-CONNECTION default;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-DISCONNECT root1;
---echo connection default;
-CONNECTION default;
-DROP VIEW IF EXISTS v1;
-DROP TABLE t1, t2;
-#DROP VIEW v1;
-
diff --git a/mysql-test/suite/row_lock/include/row_lock_view_storedp.inc b/mysql-test/suite/row_lock/include/row_lock_view_storedp.inc
deleted file mode 100644
index 479392098be..00000000000
--- a/mysql-test/suite/row_lock/include/row_lock_view_storedp.inc
+++ /dev/null
@@ -1,126 +0,0 @@
---disable_warnings
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-DROP PROCEDURE IF EXISTS stp_t;
---enable_warnings
-SET autocommit=0;
-# Create additional connections used through test
-CONNECT (root1, localhost, root,,);
-SET autocommit=0;
-CONNECT (root2, localhost, root,,);
-SET autocommit=0;
---echo connection default;
-CONNECTION default;
-eval CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-INSERT INTO t1 VALUES (5,127,5,127);
-INSERT INTO t1 VALUES (6,128,6,128);
-eval $indext1;
-eval CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-INSERT INTO t2 VALUES (5,127,5,127);
-INSERT INTO t2 VALUES (6,128,6,128);
-eval $indext2;
-CREATE VIEW v1 AS SELECT t1.i from t1;
-DELIMITER |;
-
-CREATE PROCEDURE stp_t (IN p1 int, IN p2 int) MODIFIES SQL DATA
- BEGIN
- UPDATE t2 SET i = p2 WHERE i = p1;
- UPDATE v1 SET i = p2 WHERE i = p1;
- SELECT * FROM v1 ORDER BY i;
- SELECT * FROM t1 ORDER BY t1.k;
- SELECT * FROM t2 ORDER BY t2.k;
- END;
-|
-
-DELIMITER ;|
-
-COMMIT;
-SELECT @@global.tx_isolation;
-eval EXPLAIN $select;
-eval $select;
---echo connection root1;
-CONNECTION root1;
-CALL stp_t (125, 225);
-
---echo connection root2;
-CONNECTION root2;
-CALL stp_t (127, 227);
-
---echo connection default;
-CONNECTION default;
-CALL stp_t (123, 223);
-
---echo connection root1;
-CONNECTION root1;
-CALL stp_t (126, 226);
-
---echo connection root2;
-CONNECTION root2;
-CALL stp_t (128, 228);
-
---echo connection default;
-CONNECTION default;
-CALL stp_t (124, 224);
-
---echo connection root1;
-CONNECTION root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root2;
-CONNECTION root2;
-DELETE FROM t1 WHERE t1.i=228;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-COMMIT;
-
---echo connection root1;
-CONNECTION root1;
-ROLLBACK;
-
---echo connection root1;
-CONNECTION root1;
-COMMIT;
-
---echo connection default;
-CONNECTION default;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-DISCONNECT root1;
-
---echo connection root2;
-CONNECTION root2;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-DISCONNECT root2;
-
---echo connection default;
-CONNECTION default;
---disable_warnings
-DROP VIEW v1;
-DROP PROCEDURE stp_t;
-DROP TABLE t1, t2;
---enable_warnings
diff --git a/mysql-test/suite/row_lock/include/row_lock_view_trig.inc b/mysql-test/suite/row_lock/include/row_lock_view_trig.inc
deleted file mode 100644
index 785eb1b66a9..00000000000
--- a/mysql-test/suite/row_lock/include/row_lock_view_trig.inc
+++ /dev/null
@@ -1,99 +0,0 @@
---disable_warnings
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
---enable_warnings
-SET autocommit=0;
-# Create additional connections used through test
-CONNECT (root1, localhost, root,,);
-SET autocommit=0;
---echo connection default;
-CONNECTION default;
-eval CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-eval $indext1;
-eval CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-eval $indext2;
-CREATE VIEW v1 AS SELECT t1.i from t1;
-DELIMITER |;
-
-CREATE TRIGGER trig_t2 AFTER UPDATE ON t2
- FOR EACH ROW BEGIN
- UPDATE v1 SET i = NEW.i WHERE i = OLD.i;
- END;
-|
-
-DELIMITER ;|
-
-COMMIT;
-SELECT @@global.tx_isolation;
-eval EXPLAIN $select;
-eval $select;
---echo connection root1;
-CONNECTION root1;
-UPDATE t2 SET t2.i=225 WHERE t2.i=125;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE t2 SET t2.i=223 WHERE t2.i=123;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-UPDATE t2 SET t2.i=226 WHERE t2.i=126;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-UPDATE t2 SET t2.i=224 WHERE t2.i=124;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection default;
-CONNECTION default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-COMMIT;
-
---echo connection root1;
-CONNECTION root1;
-ROLLBACK;
-
---echo connection default;
-CONNECTION default;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-
---echo connection root1;
-CONNECTION root1;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-DISCONNECT root1;
---echo connection default;
-CONNECTION default;
-DROP TABLE t1, t2;
-DROP VIEW v1;
-
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_1.result b/mysql-test/suite/row_lock/r/innodb_row_lock_1.result
deleted file mode 100644
index 54ed4350ba9..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_1.result
+++ /dev/null
@@ -1,142 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index ixi ixi 5 NULL 4 Using where; Using index
-1 SIMPLE t2 ref ixi ixi 5 test.t1.i 2 Using where; Using index
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-connection default;
-UPDATE t1,t2 SET t1.i=223,t2.i=223 WHERE t1.i=123 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-UPDATE t1,t2 SET t1.i=226,t2.i=226 WHERE t1.i=126 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-UPDATE t1,t2 SET t1.i=224,t2.i=224 WHERE t1.i=124 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DROP TABLE t1, t2;
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_2.result b/mysql-test/suite/row_lock/r/innodb_row_lock_2.result
deleted file mode 100644
index 56154e64489..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_2.result
+++ /dev/null
@@ -1,32 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t2 (i);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
-1 SIMPLE t2 ALL NULL NULL NULL NULL 4 Using where
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_3.result b/mysql-test/suite/row_lock/r/innodb_row_lock_3.result
deleted file mode 100644
index a89c55973d2..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_3.result
+++ /dev/null
@@ -1,32 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t2 (i);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
-1 SIMPLE t2 ALL NULL NULL NULL NULL 4 Using where
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_4.result b/mysql-test/suite/row_lock/r/innodb_row_lock_4.result
deleted file mode 100644
index 310d24a456a..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_4.result
+++ /dev/null
@@ -1,142 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index ixi ixi 5 NULL 4 Using where; Using index
-1 SIMPLE t2 ref ixi ixi 5 test.t1.i 2 Using where; Using index
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-connection default;
-UPDATE t1,t2 SET t1.i=223,t2.i=223 WHERE t1.i=123 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-UPDATE t1,t2 SET t1.i=226,t2.i=226 WHERE t1.i=126 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-UPDATE t1,t2 SET t1.i=224,t2.i=224 WHERE t1.i=124 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DROP TABLE t1, t2;
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_5.result b/mysql-test/suite/row_lock/r/innodb_row_lock_5.result
deleted file mode 100644
index ace5fddfad5..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_5.result
+++ /dev/null
@@ -1,32 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1 ignore index (ixi),t2 IGNORE INDEX (ixi) WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
-1 SIMPLE t2 ALL NULL NULL NULL NULL 4 Using where
-SELECT t1.i,t2.i FROM t1 ignore index (ixi),t2 IGNORE INDEX (ixi) WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_big_tab.result b/mysql-test/suite/row_lock/r/innodb_row_lock_big_tab.result
deleted file mode 100644
index 8f00c3a0bb7..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_big_tab.result
+++ /dev/null
@@ -1,97 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-CREATE INDEX ixi ON t2 (i);
-CREATE PROCEDURE fill_t1 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t1 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t1() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT count(*)/2 INTO res FROM t1;
-RETURN res;
-END;
-|
-CREATE PROCEDURE fill_t2 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t2 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t2() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT count(*)/2 INTO res FROM t2;
-RETURN res;
-END;
-|
-CALL fill_t1 (10);
-CALL fill_t2 (10);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < half_t1() AND t2.i=t1.i LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index ixi ixi 5 NULL 10 Using where; Using index
-1 SIMPLE t2 ref ixi ixi 5 test.t1.i 1 Using where; Using index
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < half_t1() AND t2.i=t1.i LOCK IN SHARE MODE;
-i i
-connection root1;
-SELECT k from t1 WHERE k < half_t1();
-k
-0
-1
-2
-3
-4
-SELECT k from t1 WHERE k >= half_t1();
-k
-5
-6
-7
-8
-9
-UPDATE t1,t2 SET t1.i=1111,t2.i=2222 WHERE t1.k < half_t1() AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-0 1111 0 100
-1 1111 1 101
-2 1111 2 102
-3 1111 3 103
-4 1111 4 104
-5 105 5 105
-6 106 6 106
-7 107 7 107
-8 108 8 108
-9 109 9 109
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-0 2222 0 100
-1 2222 1 101
-2 2222 2 102
-3 2222 3 103
-4 2222 4 104
-5 105 5 105
-6 106 6 106
-7 107 7 107
-8 108 8 108
-9 109 9 109
-connection default;
-UPDATE t1,t2 SET t1.i=3333,t2.i=4444 WHERE t1.k >= half_t1() AND t2.i=t1.i;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_big_tab_1.result b/mysql-test/suite/row_lock/r/innodb_row_lock_big_tab_1.result
deleted file mode 100644
index 0b12f149193..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_big_tab_1.result
+++ /dev/null
@@ -1,145 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-CREATE INDEX ixi ON t2 (i);
-CREATE PROCEDURE fill_t1 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t1 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t1() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT MOD(k,2) INTO res FROM t1;
-RETURN res;
-END;
-|
-CREATE PROCEDURE fill_t2 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t2 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t2() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT MOD(k,2) INTO res FROM t2;
-RETURN res;
-END;
-|
-CALL fill_t1 (40);
-CALL fill_t2 (40);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.k % 2= 0 AND t1.k = t2.k LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index PRIMARY ixi 5 NULL 40 Using where; Using index
-1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.k 1
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.k % 2= 0 AND t1.k = t2.k LOCK IN SHARE MODE;
-i i
-100 100
-102 102
-104 104
-106 106
-108 108
-110 110
-112 112
-114 114
-116 116
-118 118
-120 120
-122 122
-124 124
-126 126
-128 128
-130 130
-132 132
-134 134
-136 136
-138 138
-connection root1;
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.k % 2= 1 AND t1.k = t2.k LOCK IN SHARE MODE;
-i i
-101 101
-103 103
-105 105
-107 107
-109 109
-111 111
-113 113
-115 115
-117 117
-119 119
-121 121
-123 123
-125 125
-127 127
-129 129
-131 131
-133 133
-135 135
-137 137
-139 139
-UPDATE t1,t2 SET t1.i=1111,t2.i=2222 WHERE t1.k % 2 = 1 AND t1.k = t2.k;
-SELECT * FROM t1 WHERE k < 20 ORDER BY t1.k;
-k i j l
-0 100 0 100
-1 1111 1 101
-2 102 2 102
-3 1111 3 103
-4 104 4 104
-5 1111 5 105
-6 106 6 106
-7 1111 7 107
-8 108 8 108
-9 1111 9 109
-10 110 10 110
-11 1111 11 111
-12 112 12 112
-13 1111 13 113
-14 114 14 114
-15 1111 15 115
-16 116 16 116
-17 1111 17 117
-18 118 18 118
-19 1111 19 119
-SELECT * FROM t2 WHERE k < 20 ORDER BY t2.k;
-k i j l
-0 100 0 100
-1 2222 1 101
-2 102 2 102
-3 2222 3 103
-4 104 4 104
-5 2222 5 105
-6 106 6 106
-7 2222 7 107
-8 108 8 108
-9 2222 9 109
-10 110 10 110
-11 2222 11 111
-12 112 12 112
-13 2222 13 113
-14 114 14 114
-15 2222 15 115
-16 116 16 116
-17 2222 17 117
-18 118 18 118
-19 2222 19 119
-connection default;
-UPDATE t1,t2 SET t1.i=3333,t2.i=4444 WHERE t1.k % 2 = 0 AND t1.k = t2.k;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_big_tab_2.result b/mysql-test/suite/row_lock/r/innodb_row_lock_big_tab_2.result
deleted file mode 100644
index cc9f297f9fb..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_big_tab_2.result
+++ /dev/null
@@ -1,113 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-CREATE INDEX ixi ON t2 (i);
-CREATE PROCEDURE fill_t1 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t1 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t1() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT MOD(k,2) INTO res FROM t1;
-RETURN res;
-END;
-|
-CREATE PROCEDURE fill_t2 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t2 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t2() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT MOD(k,2) INTO res FROM t2;
-RETURN res;
-END;
-|
-CALL fill_t1 (40);
-CALL fill_t2 (40);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.k % 2= 0 AND t1.k = t2.k LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index PRIMARY ixi 5 NULL 40 Using where; Using index
-1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.k 1
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.k % 2= 0 AND t1.k = t2.k LOCK IN SHARE MODE;
-i i
-100 100
-102 102
-104 104
-106 106
-108 108
-110 110
-112 112
-114 114
-116 116
-118 118
-120 120
-122 122
-124 124
-126 126
-128 128
-130 130
-132 132
-134 134
-136 136
-138 138
-connection root1;
-DELETE FROM t1 WHERE t1.k % 2 = 1;
-SELECT * FROM t1 WHERE k < 20 ORDER BY t1.k;
-k i j l
-0 100 0 100
-2 102 2 102
-4 104 4 104
-6 106 6 106
-8 108 8 108
-10 110 10 110
-12 112 12 112
-14 114 14 114
-16 116 16 116
-18 118 18 118
-SELECT * FROM t2 WHERE k < 20 ORDER BY t2.k;
-k i j l
-0 100 0 100
-1 101 1 101
-2 102 2 102
-3 103 3 103
-4 104 4 104
-5 105 5 105
-6 106 6 106
-7 107 7 107
-8 108 8 108
-9 109 9 109
-10 110 10 110
-11 111 11 111
-12 112 12 112
-13 113 13 113
-14 114 14 114
-15 115 15 115
-16 116 16 116
-17 117 17 117
-18 118 18 118
-19 119 19 119
-connection default;
-UPDATE t1,t2 SET t1.i=3333,t2.i=4444 WHERE t1.k % 2 = 0 AND t1.k = t2.k;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_trig_1.result b/mysql-test/suite/row_lock/r/innodb_row_lock_trig_1.result
deleted file mode 100644
index dd43e5752e5..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_trig_1.result
+++ /dev/null
@@ -1,151 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE TRIGGER trig_t2 AFTER UPDATE ON t2
-FOR EACH ROW BEGIN
-UPDATE t1 SET l = NEW.i WHERE i = OLD.i;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index ixi ixi 5 NULL 4 Using where; Using index
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-UPDATE t2 SET t2.i=225 WHERE t2.i=125;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 225
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-connection default;
-UPDATE t2 SET t2.i=223 WHERE t2.i=123;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 223
-2 124 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-UPDATE t2 SET t2.i=226 WHERE t2.i=126;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 225
-4 126 4 226
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-UPDATE t2 SET t2.i=224 WHERE t2.i=124;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 223
-2 124 2 224
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 225
-4 126 4 226
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 223
-2 124 2 224
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 223
-2 124 2 224
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 223
-2 124 2 224
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DROP TABLE t1, t2;
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_trig_2.result b/mysql-test/suite/row_lock/r/innodb_row_lock_trig_2.result
deleted file mode 100644
index cb3a5c692e9..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_trig_2.result
+++ /dev/null
@@ -1,37 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t2 (i);
-CREATE TRIGGER trig_t2 AFTER UPDATE ON t2
-FOR EACH ROW BEGIN
-UPDATE t1 SET l = NEW.i WHERE i = OLD.i;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-UPDATE t2 SET t2.i=225 WHERE t2.i=125;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_view_1.result b/mysql-test/suite/row_lock/r/innodb_row_lock_view_1.result
deleted file mode 100644
index 834cb669833..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_view_1.result
+++ /dev/null
@@ -1,34 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i, t2.l from t1,t2;
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index ixi ixi 5 NULL 4 Using where; Using index
-1 SIMPLE t2 ref ixi ixi 5 test.t1.i 2 Using where; Using index
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE v1 SET i=325 where i=125;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_view_2.result b/mysql-test/suite/row_lock/r/innodb_row_lock_view_2.result
deleted file mode 100644
index 440138d4cd1..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_view_2.result
+++ /dev/null
@@ -1,40 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i, t2.l from t1,t2;
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index ixi ixi 5 NULL 4 Using where; Using index
-1 SIMPLE t2 index NULL PRIMARY 4 NULL 4 Using index
-SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-i
-123
-124
-123
-124
-123
-124
-123
-124
-connection root1;
-UPDATE v1 SET i=325 where i=125;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_view_mix_1.result b/mysql-test/suite/row_lock/r/innodb_row_lock_view_mix_1.result
deleted file mode 100644
index 230873b67a0..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_view_mix_1.result
+++ /dev/null
@@ -1,48 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i, t2.l from t1,t2;
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index ixi ixi 5 NULL 4 Using where; Using index
-1 SIMPLE t2 ref ixi ixi 5 test.t1.i 2 Using where; Using index
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-connection default;
-UPDATE v1 SET i=323 where i=123;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_view_mix_2.result b/mysql-test/suite/row_lock/r/innodb_row_lock_view_mix_2.result
deleted file mode 100644
index d792d573f8e..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_view_mix_2.result
+++ /dev/null
@@ -1,40 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i, t2.l from t1,t2;
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index ixi ixi 5 NULL 4 Using where; Using index
-1 SIMPLE t2 index NULL PRIMARY 4 NULL 4 Using index
-SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-i
-123
-124
-123
-124
-123
-124
-123
-124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_view_storedp_1.result b/mysql-test/suite/row_lock/r/innodb_row_lock_view_storedp_1.result
deleted file mode 100644
index 77b9a4dd964..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_view_storedp_1.result
+++ /dev/null
@@ -1,312 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-INSERT INTO t1 VALUES (5,127,5,127);
-INSERT INTO t1 VALUES (6,128,6,128);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-INSERT INTO t2 VALUES (5,127,5,127);
-INSERT INTO t2 VALUES (6,128,6,128);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i from t1;
-CREATE PROCEDURE stp_t (IN p1 int, IN p2 int) MODIFIES SQL DATA
-BEGIN
-UPDATE t2 SET i = p2 WHERE i = p1;
-UPDATE v1 SET i = p2 WHERE i = p1;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index ixi ixi 5 NULL 6 Using where; Using index
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-CALL stp_t (125, 225);
-i
-123
-124
-126
-127
-128
-225
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-connection root2;
-CALL stp_t (127, 227);
-i
-123
-124
-125
-126
-128
-227
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 128 6 128
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 128 6 128
-connection default;
-CALL stp_t (123, 223);
-i
-124
-125
-126
-127
-128
-223
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-connection root1;
-CALL stp_t (126, 226);
-i
-123
-124
-127
-128
-225
-226
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-5 127 5 127
-6 128 6 128
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-5 127 5 127
-6 128 6 128
-connection root2;
-CALL stp_t (128, 228);
-i
-123
-124
-125
-126
-227
-228
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 228 6 128
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 228 6 128
-connection default;
-CALL stp_t (124, 224);
-i
-125
-126
-127
-128
-223
-224
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-5 127 5 127
-6 128 6 128
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-5 127 5 127
-6 128 6 128
-connection root2;
-DELETE FROM t1 WHERE t1.i=228;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 228 6 128
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-COMMIT;
-connection root1;
-ROLLBACK;
-connection root1;
-COMMIT;
-connection default;
-SELECT * FROM v1 ORDER BY i;
-i
-125
-126
-127
-128
-223
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-connection root1;
-SELECT * FROM v1 ORDER BY i;
-i
-125
-126
-127
-128
-223
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-connection root2;
-SELECT * FROM v1 ORDER BY i;
-i
-123
-124
-125
-126
-227
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 228 6 128
-connection default;
-DROP TABLE t1, t2;
-DROP VIEW v1;
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_view_storedp_2.result b/mysql-test/suite/row_lock/r/innodb_row_lock_view_storedp_2.result
deleted file mode 100644
index 73d8a3f4bea..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_view_storedp_2.result
+++ /dev/null
@@ -1,47 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-INSERT INTO t1 VALUES (5,127,5,127);
-INSERT INTO t1 VALUES (6,128,6,128);
-#CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-INSERT INTO t2 VALUES (5,127,5,127);
-INSERT INTO t2 VALUES (6,128,6,128);
-#CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i from t1;
-CREATE PROCEDURE stp_t (IN p1 int, IN p2 int) MODIFIES SQL DATA
-BEGIN
-UPDATE t2 SET i = p2 WHERE i = p1;
-UPDATE v1 SET i = p2 WHERE i = p1;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using where
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-CALL stp_t (125, 225);
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_view_trig_1.result b/mysql-test/suite/row_lock/r/innodb_row_lock_view_trig_1.result
deleted file mode 100644
index 90383a9489f..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_view_trig_1.result
+++ /dev/null
@@ -1,183 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i from t1;
-CREATE TRIGGER trig_t2 AFTER UPDATE ON t2
-FOR EACH ROW BEGIN
-UPDATE v1 SET i = NEW.i WHERE i = OLD.i;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index ixi ixi 5 NULL 4 Using where; Using index
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-UPDATE t2 SET t2.i=225 WHERE t2.i=125;
-SELECT * FROM v1 ORDER BY i;
-i
-123
-124
-126
-225
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-connection default;
-UPDATE t2 SET t2.i=223 WHERE t2.i=123;
-SELECT * FROM v1 ORDER BY i;
-i
-124
-125
-126
-223
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-UPDATE t2 SET t2.i=226 WHERE t2.i=126;
-SELECT * FROM v1 ORDER BY i;
-i
-123
-124
-225
-226
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-UPDATE t2 SET t2.i=224 WHERE t2.i=124;
-SELECT * FROM v1 ORDER BY i;
-i
-125
-126
-223
-224
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM v1 ORDER BY i;
-i
-125
-126
-223
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-SELECT * FROM v1 ORDER BY i;
-i
-125
-126
-223
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DROP TABLE t1, t2;
-DROP VIEW v1;
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/r/innodb_row_lock_view_trig_2.result b/mysql-test/suite/row_lock/r/innodb_row_lock_view_trig_2.result
deleted file mode 100644
index 55793558b21..00000000000
--- a/mysql-test/suite/row_lock/r/innodb_row_lock_view_trig_2.result
+++ /dev/null
@@ -1,38 +0,0 @@
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i from t1;
-CREATE TRIGGER trig_t2 AFTER UPDATE ON t2
-FOR EACH ROW BEGIN
-UPDATE v1 SET i = NEW.i WHERE i = OLD.i;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-UPDATE t2 SET t2.i=225 WHERE t2.i=125;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_1.result b/mysql-test/suite/row_lock/r/ndb_row_lock_1.result
deleted file mode 100644
index 248c7d5ea1f..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_1.result
+++ /dev/null
@@ -1,139 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range ixi ixi 5 NULL 10 Using where
-1 SIMPLE t2 ref ixi ixi 5 test.t1.i 1 Using where
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-connection default;
-UPDATE t1,t2 SET t1.i=223,t2.i=223 WHERE t1.i=123 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-UPDATE t1,t2 SET t1.i=226,t2.i=226 WHERE t1.i=126 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-UPDATE t1,t2 SET t1.i=224,t2.i=224 WHERE t1.i=124 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DROP TABLE t1, t2;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_2.result b/mysql-test/suite/row_lock/r/ndb_row_lock_2.result
deleted file mode 100644
index 109d99dd036..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_2.result
+++ /dev/null
@@ -1,31 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t2 (i);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
-1 SIMPLE t2 ALL NULL NULL NULL NULL 4 Using where
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_3.result b/mysql-test/suite/row_lock/r/ndb_row_lock_3.result
deleted file mode 100644
index c936ea209ff..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_3.result
+++ /dev/null
@@ -1,30 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t2 (i);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
-1 SIMPLE t2 ALL NULL NULL NULL NULL 4 Using where
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_4.result b/mysql-test/suite/row_lock/r/ndb_row_lock_4.result
deleted file mode 100644
index 875c783bd81..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_4.result
+++ /dev/null
@@ -1,139 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range ixi ixi 5 NULL 10 Using where
-1 SIMPLE t2 ref ixi ixi 5 test.t1.i 1 Using where
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-connection default;
-UPDATE t1,t2 SET t1.i=223,t2.i=223 WHERE t1.i=123 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-UPDATE t1,t2 SET t1.i=226,t2.i=226 WHERE t1.i=126 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-UPDATE t1,t2 SET t1.i=224,t2.i=224 WHERE t1.i=124 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DROP TABLE t1, t2;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_5.result b/mysql-test/suite/row_lock/r/ndb_row_lock_5.result
deleted file mode 100644
index 0d94f8abf72..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_5.result
+++ /dev/null
@@ -1,30 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1 ignore index (ixi),t2 IGNORE INDEX (ixi) WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
-1 SIMPLE t2 ALL NULL NULL NULL NULL 4 Using where
-SELECT t1.i,t2.i FROM t1 ignore index (ixi),t2 IGNORE INDEX (ixi) WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_big_tab.result b/mysql-test/suite/row_lock/r/ndb_row_lock_big_tab.result
deleted file mode 100644
index 94b67c63d94..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_big_tab.result
+++ /dev/null
@@ -1,177 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-CREATE INDEX ixi ON t2 (i);
-CREATE PROCEDURE fill_t1 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t1 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t1() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT count(*)/2 INTO res FROM t1;
-RETURN res;
-END;
-|
-CREATE PROCEDURE fill_t2 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t2 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t2() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT count(*)/2 INTO res FROM t2;
-RETURN res;
-END;
-|
-CALL fill_t1 (10);
-CALL fill_t2 (10);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < half_t1() AND t2.i=t1.i LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range ixi ixi 5 NULL 10 Using where
-1 SIMPLE t2 ref ixi ixi 5 test.t1.i 1 Using where
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < half_t1() AND t2.i=t1.i LOCK IN SHARE MODE;
-i i
-connection root1;
-SELECT k from t1 WHERE k < half_t1();
-k
-0
-3
-1
-2
-4
-SELECT k from t1 WHERE k >= half_t1();
-k
-6
-7
-9
-5
-8
-UPDATE t1,t2 SET t1.i=1111,t2.i=2222 WHERE t1.k < half_t1() AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-0 1111 0 100
-1 1111 1 101
-2 1111 2 102
-3 1111 3 103
-4 1111 4 104
-5 105 5 105
-6 106 6 106
-7 107 7 107
-8 108 8 108
-9 109 9 109
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-0 2222 0 100
-1 2222 1 101
-2 2222 2 102
-3 2222 3 103
-4 2222 4 104
-5 105 5 105
-6 106 6 106
-7 107 7 107
-8 108 8 108
-9 109 9 109
-connection default;
-UPDATE t1,t2 SET t1.i=3333,t2.i=4444 WHERE t1.k >= half_t1() AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-0 100 0 100
-1 101 1 101
-2 102 2 102
-3 103 3 103
-4 104 4 104
-5 3333 5 105
-6 3333 6 106
-7 3333 7 107
-8 3333 8 108
-9 3333 9 109
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-0 100 0 100
-1 101 1 101
-2 102 2 102
-3 103 3 103
-4 104 4 104
-5 4444 5 105
-6 4444 6 106
-7 4444 7 107
-8 4444 8 108
-9 4444 9 109
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-0 100 0 100
-1 101 1 101
-2 102 2 102
-3 103 3 103
-4 104 4 104
-5 3333 5 105
-6 3333 6 106
-7 3333 7 107
-8 3333 8 108
-9 3333 9 109
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-0 100 0 100
-1 101 1 101
-2 102 2 102
-3 103 3 103
-4 104 4 104
-5 4444 5 105
-6 4444 6 106
-7 4444 7 107
-8 4444 8 108
-9 4444 9 109
-connection root1;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-0 100 0 100
-1 101 1 101
-2 102 2 102
-3 103 3 103
-4 104 4 104
-5 3333 5 105
-6 3333 6 106
-7 3333 7 107
-8 3333 8 108
-9 3333 9 109
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-0 100 0 100
-1 101 1 101
-2 102 2 102
-3 103 3 103
-4 104 4 104
-5 4444 5 105
-6 4444 6 106
-7 4444 7 107
-8 4444 8 108
-9 4444 9 109
-connection default;
-DROP VIEW IF EXISTS v1;
-Warnings:
-Note 1051 Unknown table 'test.v1'
-DROP TABLE t1, t2;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_big_tab_1.result b/mysql-test/suite/row_lock/r/ndb_row_lock_big_tab_1.result
deleted file mode 100644
index 9803895e1a7..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_big_tab_1.result
+++ /dev/null
@@ -1,357 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-CREATE INDEX ixi ON t2 (i);
-CREATE PROCEDURE fill_t1 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t1 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t1() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT MOD(k,2) INTO res FROM t1;
-RETURN res;
-END;
-|
-CREATE PROCEDURE fill_t2 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t2 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t2() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT MOD(k,2) INTO res FROM t2;
-RETURN res;
-END;
-|
-CALL fill_t1 (200);
-CALL fill_t2 (200);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < t1.k % 2 = 0 AND t2.k=t1.k LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 200 Using where
-1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.k 1
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < t1.k % 2 = 0 AND t2.k=t1.k LOCK IN SHARE MODE;
-i i
-135 135
-119 119
-211 211
-184 184
-232 232
-105 105
-188 188
-216 216
-255 255
-154 154
-197 197
-279 279
-218 218
-127 127
-203 203
-281 281
-194 194
-161 161
-276 276
-122 122
-139 139
-183 183
-114 114
-247 247
-144 144
-148 148
-174 174
-267 267
-142 142
-168 168
-226 226
-258 258
-231 231
-146 146
-253 253
-189 189
-230 230
-290 290
-178 178
-158 158
-130 130
-214 214
-133 133
-229 229
-294 294
-295 295
-108 108
-112 112
-297 297
-151 151
-251 251
-270 270
-291 291
-159 159
-132 132
-121 121
-244 244
-272 272
-293 293
-186 186
-111 111
-166 166
-201 201
-175 175
-180 180
-209 209
-192 192
-246 246
-195 195
-107 107
-233 233
-239 239
-103 103
-109 109
-128 128
-266 266
-143 143
-160 160
-187 187
-243 243
-273 273
-259 259
-110 110
-176 176
-141 141
-170 170
-215 215
-191 191
-200 200
-271 271
-162 162
-260 260
-106 106
-150 150
-126 126
-147 147
-155 155
-193 193
-207 207
-287 287
-235 235
-252 252
-129 129
-205 205
-268 268
-278 278
-116 116
-137 137
-199 199
-217 217
-234 234
-190 190
-236 236
-257 257
-100 100
-210 210
-212 212
-264 264
-221 221
-241 241
-256 256
-262 262
-265 265
-269 269
-277 277
-173 173
-177 177
-208 208
-219 219
-285 285
-101 101
-164 164
-113 113
-125 125
-202 202
-140 140
-156 156
-282 282
-181 181
-206 206
-299 299
-102 102
-145 145
-227 227
-196 196
-138 138
-198 198
-204 204
-237 237
-171 171
-284 284
-263 263
-292 292
-104 104
-149 149
-250 250
-296 296
-228 228
-280 280
-242 242
-248 248
-185 185
-220 220
-245 245
-275 275
-118 118
-120 120
-152 152
-153 153
-157 157
-182 182
-179 179
-254 254
-288 288
-172 172
-283 283
-286 286
-115 115
-238 238
-289 289
-131 131
-223 223
-134 134
-136 136
-222 222
-225 225
-261 261
-274 274
-123 123
-163 163
-224 224
-117 117
-298 298
-169 169
-124 124
-167 167
-240 240
-249 249
-165 165
-213 213
-connection root1;
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.k % 2= 1 AND t1.k = t2.k LOCK IN SHARE MODE;
-i i
-209 209
-195 195
-107 107
-233 233
-239 239
-103 103
-109 109
-143 143
-187 187
-243 243
-273 273
-259 259
-141 141
-215 215
-191 191
-271 271
-147 147
-155 155
-193 193
-207 207
-287 287
-235 235
-129 129
-205 205
-137 137
-199 199
-217 217
-257 257
-221 221
-241 241
-265 265
-269 269
-277 277
-173 173
-177 177
-135 135
-119 119
-211 211
-105 105
-255 255
-197 197
-279 279
-127 127
-203 203
-281 281
-161 161
-139 139
-183 183
-247 247
-267 267
-231 231
-253 253
-189 189
-133 133
-229 229
-295 295
-297 297
-151 151
-251 251
-291 291
-159 159
-121 121
-293 293
-111 111
-201 201
-175 175
-185 185
-245 245
-275 275
-153 153
-157 157
-179 179
-283 283
-115 115
-289 289
-131 131
-223 223
-225 225
-261 261
-123 123
-163 163
-117 117
-169 169
-167 167
-249 249
-165 165
-213 213
-219 219
-285 285
-101 101
-113 113
-125 125
-181 181
-299 299
-145 145
-227 227
-237 237
-171 171
-263 263
-149 149
-UPDATE t1,t2 SET t1.i=1111,t2.i=2222 WHERE t1.k % 2 = 1 AND t1.k = t2.k;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_big_tab_2.result b/mysql-test/suite/row_lock/r/ndb_row_lock_big_tab_2.result
deleted file mode 100644
index adb89b03480..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_big_tab_2.result
+++ /dev/null
@@ -1,255 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-CREATE INDEX ixi ON t2 (i);
-CREATE PROCEDURE fill_t1 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t1 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t1() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT MOD(k,2) INTO res FROM t1;
-RETURN res;
-END;
-|
-CREATE PROCEDURE fill_t2 (IN upb int)
-BEGIN
-DECLARE cnt int DEFAULT 0;
-WHILE cnt < upb DO
-INSERT INTO t2 VALUES (cnt, cnt+100, cnt, cnt+100);
-SET cnt= cnt+1;
-END WHILE;
-END;
-|
-CREATE FUNCTION half_t2() RETURNS int
-BEGIN
-DECLARE res int DEFAULT 0;
-SELECT MOD(k,2) INTO res FROM t2;
-RETURN res;
-END;
-|
-CALL fill_t1 (200);
-CALL fill_t2 (200);
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < t1.k % 2 = 0 AND t2.k=t1.k LOCK IN SHARE MODE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 200 Using where
-1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.k 1
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < t1.k % 2 = 0 AND t2.k=t1.k LOCK IN SHARE MODE;
-i i
-135 135
-119 119
-211 211
-184 184
-232 232
-105 105
-188 188
-216 216
-255 255
-154 154
-197 197
-279 279
-218 218
-127 127
-203 203
-281 281
-194 194
-161 161
-276 276
-122 122
-139 139
-183 183
-114 114
-247 247
-144 144
-148 148
-174 174
-267 267
-142 142
-168 168
-226 226
-258 258
-231 231
-146 146
-253 253
-189 189
-230 230
-290 290
-178 178
-158 158
-130 130
-214 214
-133 133
-229 229
-294 294
-295 295
-108 108
-112 112
-297 297
-151 151
-251 251
-270 270
-291 291
-159 159
-132 132
-121 121
-244 244
-272 272
-293 293
-186 186
-111 111
-166 166
-201 201
-175 175
-180 180
-209 209
-192 192
-246 246
-195 195
-107 107
-233 233
-239 239
-103 103
-109 109
-128 128
-266 266
-143 143
-160 160
-187 187
-243 243
-273 273
-259 259
-110 110
-176 176
-141 141
-170 170
-215 215
-191 191
-200 200
-271 271
-162 162
-260 260
-106 106
-150 150
-126 126
-147 147
-155 155
-193 193
-207 207
-287 287
-235 235
-252 252
-129 129
-205 205
-268 268
-278 278
-116 116
-137 137
-199 199
-217 217
-234 234
-190 190
-236 236
-257 257
-100 100
-210 210
-212 212
-264 264
-221 221
-241 241
-256 256
-262 262
-265 265
-269 269
-277 277
-173 173
-177 177
-208 208
-219 219
-285 285
-101 101
-164 164
-113 113
-125 125
-202 202
-140 140
-156 156
-282 282
-181 181
-206 206
-299 299
-102 102
-145 145
-227 227
-196 196
-138 138
-198 198
-204 204
-237 237
-171 171
-284 284
-263 263
-292 292
-104 104
-149 149
-250 250
-296 296
-228 228
-280 280
-242 242
-248 248
-185 185
-220 220
-245 245
-275 275
-118 118
-120 120
-152 152
-153 153
-157 157
-182 182
-179 179
-254 254
-288 288
-172 172
-283 283
-286 286
-115 115
-238 238
-289 289
-131 131
-223 223
-134 134
-136 136
-222 222
-225 225
-261 261
-274 274
-123 123
-163 163
-224 224
-117 117
-298 298
-169 169
-124 124
-167 167
-240 240
-249 249
-165 165
-213 213
-connection root1;
-DELETE FROM t1 WHERE t1.k % 2 = 1;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_trig_1.result b/mysql-test/suite/row_lock/r/ndb_row_lock_trig_1.result
deleted file mode 100644
index eb69fd2e306..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_trig_1.result
+++ /dev/null
@@ -1,148 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE TRIGGER trig_t2 AFTER UPDATE ON t2
-FOR EACH ROW BEGIN
-UPDATE t1 SET l = NEW.i WHERE i = OLD.i;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range ixi ixi 5 NULL 10 Using where
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-UPDATE t2 SET t2.i=225 WHERE t2.i=125;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 225
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-connection default;
-UPDATE t2 SET t2.i=223 WHERE t2.i=123;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 223
-2 124 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-UPDATE t2 SET t2.i=226 WHERE t2.i=126;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 225
-4 126 4 226
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-UPDATE t2 SET t2.i=224 WHERE t2.i=124;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 223
-2 124 2 224
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 225
-4 126 4 226
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 223
-2 124 2 224
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 223
-2 124 2 224
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 223
-2 124 2 224
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DROP TABLE t1, t2;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_trig_2.result b/mysql-test/suite/row_lock/r/ndb_row_lock_trig_2.result
deleted file mode 100644
index bedb75da93a..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_trig_2.result
+++ /dev/null
@@ -1,35 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t2 (i);
-CREATE TRIGGER trig_t2 AFTER UPDATE ON t2
-FOR EACH ROW BEGIN
-UPDATE t1 SET l = NEW.i WHERE i = OLD.i;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-UPDATE t2 SET t2.i=225 WHERE t2.i=125;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_view_1.result b/mysql-test/suite/row_lock/r/ndb_row_lock_view_1.result
deleted file mode 100644
index 279f2626c73..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_view_1.result
+++ /dev/null
@@ -1,194 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i, t2.l from t1,t2;
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range ixi ixi 5 NULL 10 Using where
-1 SIMPLE t2 ref ixi ixi 5 test.t1.i 1 Using where
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE v1 SET i=325 where i=125;
-SELECT * FROM v1 ORDER BY i,l;
-i l
-123 123
-123 124
-123 125
-123 126
-124 123
-124 124
-124 125
-124 126
-126 123
-126 124
-126 125
-126 126
-325 123
-325 124
-325 125
-325 126
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 325 3 125
-4 126 4 126
-connection default;
-UPDATE v1 SET i=323 where i=123;
-SELECT * FROM v1 ORDER BY i,l;
-i l
-124 123
-124 124
-124 125
-124 126
-125 123
-125 124
-125 125
-125 126
-126 123
-126 124
-126 125
-126 126
-323 123
-323 124
-323 125
-323 126
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-UPDATE v1 SET i=326 where i=126;
-SELECT * FROM v1 ORDER BY i,l;
-i l
-123 123
-123 124
-123 125
-123 126
-124 123
-124 124
-124 125
-124 126
-325 123
-325 124
-325 125
-325 126
-326 123
-326 124
-326 125
-326 126
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 325 3 125
-4 326 4 126
-connection default;
-UPDATE v1 SET i=324 where i=124;
-SELECT * FROM v1 ORDER BY i,l;
-i l
-125 123
-125 124
-125 125
-125 126
-126 123
-126 124
-126 125
-126 126
-323 123
-323 124
-323 125
-323 126
-324 123
-324 124
-324 125
-324 126
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 325 3 125
-4 326 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DROP VIEW IF EXISTS v1;
-DROP TABLE t1, t2;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_view_2.result b/mysql-test/suite/row_lock/r/ndb_row_lock_view_2.result
deleted file mode 100644
index 9e74e93b0cc..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_view_2.result
+++ /dev/null
@@ -1,200 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i, t2.l from t1,t2;
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range ixi ixi 5 NULL 10 Using where
-1 SIMPLE t2 ALL NULL NULL NULL NULL 4
-SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-i
-123
-124
-123
-124
-123
-124
-123
-124
-connection root1;
-UPDATE v1 SET i=325 where i=125;
-SELECT * FROM v1 ORDER BY i,l;
-i l
-123 123
-123 124
-123 125
-123 126
-124 123
-124 124
-124 125
-124 126
-126 123
-126 124
-126 125
-126 126
-325 123
-325 124
-325 125
-325 126
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 325 3 125
-4 126 4 126
-connection default;
-UPDATE v1 SET i=323 where i=123;
-SELECT * FROM v1 ORDER BY i,l;
-i l
-124 123
-124 124
-124 125
-124 126
-125 123
-125 124
-125 125
-125 126
-126 123
-126 124
-126 125
-126 126
-323 123
-323 124
-323 125
-323 126
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-UPDATE v1 SET i=326 where i=126;
-SELECT * FROM v1 ORDER BY i,l;
-i l
-123 123
-123 124
-123 125
-123 126
-124 123
-124 124
-124 125
-124 126
-325 123
-325 124
-325 125
-325 126
-326 123
-326 124
-326 125
-326 126
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 325 3 125
-4 326 4 126
-connection default;
-UPDATE v1 SET i=324 where i=124;
-SELECT * FROM v1 ORDER BY i,l;
-i l
-125 123
-125 124
-125 125
-125 126
-126 123
-126 124
-126 125
-126 126
-323 123
-323 124
-323 125
-323 126
-324 123
-324 124
-324 125
-324 126
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 325 3 125
-4 326 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DROP VIEW IF EXISTS v1;
-DROP TABLE t1, t2;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_view_mix_1.result b/mysql-test/suite/row_lock/r/ndb_row_lock_view_mix_1.result
deleted file mode 100644
index b5b1c519702..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_view_mix_1.result
+++ /dev/null
@@ -1,169 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i, t2.l from t1,t2;
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range ixi ixi 5 NULL 10 Using where
-1 SIMPLE t2 ref ixi ixi 5 test.t1.i 1 Using where
-SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-i i
-123 123
-124 124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-connection default;
-UPDATE v1 SET i=323 where i=123;
-SELECT * FROM v1 ORDER BY i,l;
-i l
-124 123
-124 124
-124 125
-124 126
-125 123
-125 124
-125 125
-125 126
-126 123
-126 124
-126 125
-126 126
-323 123
-323 124
-323 125
-323 126
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-UPDATE t1,t2 SET t1.i=226,t2.i=226 WHERE t1.i=126 AND t2.i=t1.i;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-UPDATE v1 SET i=324 where i=124;
-SELECT * FROM v1 ORDER BY i,l;
-i l
-125 123
-125 124
-125 125
-125 126
-126 123
-126 124
-126 125
-126 126
-323 123
-323 124
-323 125
-323 126
-324 123
-324 124
-324 125
-324 126
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 323 1 123
-2 324 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DROP VIEW IF EXISTS v1;
-DROP TABLE t1, t2;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_view_mix_2.result b/mysql-test/suite/row_lock/r/ndb_row_lock_view_mix_2.result
deleted file mode 100644
index d92f9ad9664..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_view_mix_2.result
+++ /dev/null
@@ -1,38 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i, t2.l from t1,t2;
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range ixi ixi 5 NULL 10 Using where
-1 SIMPLE t2 ALL NULL NULL NULL NULL 4
-SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-i
-123
-124
-123
-124
-123
-124
-123
-124
-connection root1;
-UPDATE t1,t2 SET t1.i=225,t2.i=225 WHERE t1.i=125 AND t2.i=t1.i;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_view_storedp_1.result b/mysql-test/suite/row_lock/r/ndb_row_lock_view_storedp_1.result
deleted file mode 100644
index e2a2a6e7deb..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_view_storedp_1.result
+++ /dev/null
@@ -1,309 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-DROP PROCEDURE IF EXISTS stp_t;
-SET autocommit=0;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-INSERT INTO t1 VALUES (5,127,5,127);
-INSERT INTO t1 VALUES (6,128,6,128);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-INSERT INTO t2 VALUES (5,127,5,127);
-INSERT INTO t2 VALUES (6,128,6,128);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i from t1;
-CREATE PROCEDURE stp_t (IN p1 int, IN p2 int) MODIFIES SQL DATA
-BEGIN
-UPDATE t2 SET i = p2 WHERE i = p1;
-UPDATE v1 SET i = p2 WHERE i = p1;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range ixi ixi 5 NULL 10 Using where
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-CALL stp_t (125, 225);
-i
-123
-124
-126
-127
-128
-225
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-connection root2;
-CALL stp_t (127, 227);
-i
-123
-124
-125
-126
-128
-227
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 128 6 128
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 128 6 128
-connection default;
-CALL stp_t (123, 223);
-i
-124
-125
-126
-127
-128
-223
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-connection root1;
-CALL stp_t (126, 226);
-i
-123
-124
-127
-128
-225
-226
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-5 127 5 127
-6 128 6 128
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-5 127 5 127
-6 128 6 128
-connection root2;
-CALL stp_t (128, 228);
-i
-123
-124
-125
-126
-227
-228
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 228 6 128
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 228 6 128
-connection default;
-CALL stp_t (124, 224);
-i
-125
-126
-127
-128
-223
-224
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-5 127 5 127
-6 128 6 128
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-5 127 5 127
-6 128 6 128
-connection root2;
-DELETE FROM t1 WHERE t1.i=228;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 228 6 128
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-COMMIT;
-connection root1;
-ROLLBACK;
-connection root1;
-COMMIT;
-connection default;
-SELECT * FROM v1 ORDER BY i;
-i
-125
-126
-127
-128
-223
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-connection root1;
-SELECT * FROM v1 ORDER BY i;
-i
-125
-126
-127
-128
-223
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-5 127 5 127
-6 128 6 128
-connection root2;
-SELECT * FROM v1 ORDER BY i;
-i
-125
-126
-223
-227
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-5 227 5 127
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-5 227 5 127
-6 228 6 128
-connection default;
-DROP VIEW v1;
-DROP PROCEDURE stp_t;
-DROP TABLE t1, t2;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_view_storedp_2.result b/mysql-test/suite/row_lock/r/ndb_row_lock_view_storedp_2.result
deleted file mode 100644
index 6dbd5f834ed..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_view_storedp_2.result
+++ /dev/null
@@ -1,46 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-DROP PROCEDURE IF EXISTS stp_t;
-SET autocommit=0;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-INSERT INTO t1 VALUES (5,127,5,127);
-INSERT INTO t1 VALUES (6,128,6,128);
-#CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-INSERT INTO t2 VALUES (5,127,5,127);
-INSERT INTO t2 VALUES (6,128,6,128);
-#CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i from t1;
-CREATE PROCEDURE stp_t (IN p1 int, IN p2 int) MODIFIES SQL DATA
-BEGIN
-UPDATE t2 SET i = p2 WHERE i = p1;
-UPDATE v1 SET i = p2 WHERE i = p1;
-SELECT * FROM v1 ORDER BY i;
-SELECT * FROM t1 ORDER BY t1.k;
-SELECT * FROM t2 ORDER BY t2.k;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using where
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-CALL stp_t (125, 225);
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_view_trig_1.result b/mysql-test/suite/row_lock/r/ndb_row_lock_view_trig_1.result
deleted file mode 100644
index f5c745ca41c..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_view_trig_1.result
+++ /dev/null
@@ -1,180 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i from t1;
-CREATE TRIGGER trig_t2 AFTER UPDATE ON t2
-FOR EACH ROW BEGIN
-UPDATE v1 SET i = NEW.i WHERE i = OLD.i;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range ixi ixi 5 NULL 10 Using where
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-UPDATE t2 SET t2.i=225 WHERE t2.i=125;
-SELECT * FROM v1 ORDER BY i;
-i
-123
-124
-126
-225
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 126 4 126
-connection default;
-UPDATE t2 SET t2.i=223 WHERE t2.i=123;
-SELECT * FROM v1 ORDER BY i;
-i
-124
-125
-126
-223
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 124 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-UPDATE t2 SET t2.i=226 WHERE t2.i=126;
-SELECT * FROM v1 ORDER BY i;
-i
-123
-124
-225
-226
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-UPDATE t2 SET t2.i=224 WHERE t2.i=124;
-SELECT * FROM v1 ORDER BY i;
-i
-125
-126
-223
-224
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-DELETE FROM t1 WHERE t1.i=226;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 123 1 123
-2 124 2 124
-3 225 3 125
-4 226 4 126
-connection default;
-DELETE FROM t1 WHERE t1.i=224;
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-COMMIT;
-connection root1;
-ROLLBACK;
-connection default;
-SELECT * FROM v1 ORDER BY i;
-i
-125
-126
-223
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection root1;
-SELECT * FROM v1 ORDER BY i;
-i
-125
-126
-223
-SELECT * FROM t1 ORDER BY t1.k;
-k i j l
-1 223 1 123
-3 125 3 125
-4 126 4 126
-SELECT * FROM t2 ORDER BY t2.k;
-k i j l
-1 223 1 123
-2 224 2 124
-3 125 3 125
-4 126 4 126
-connection default;
-DROP TABLE t1, t2;
-DROP VIEW v1;
diff --git a/mysql-test/suite/row_lock/r/ndb_row_lock_view_trig_2.result b/mysql-test/suite/row_lock/r/ndb_row_lock_view_trig_2.result
deleted file mode 100644
index d6a38753c1d..00000000000
--- a/mysql-test/suite/row_lock/r/ndb_row_lock_view_trig_2.result
+++ /dev/null
@@ -1,36 +0,0 @@
-DROP TABLE IF EXISTS t1, t2;
-DROP VIEW IF EXISTS v1;
-SET autocommit=0;
-SET autocommit=0;
-connection default;
-CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t1 VALUES (1,123,1,123);
-INSERT INTO t1 VALUES (2,124,2,124);
-INSERT INTO t1 VALUES (3,125,3,125);
-INSERT INTO t1 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t1 (i);
-CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=NDB;
-INSERT INTO t2 VALUES (1,123,1,123);
-INSERT INTO t2 VALUES (2,124,2,124);
-INSERT INTO t2 VALUES (3,125,3,125);
-INSERT INTO t2 VALUES (4,126,4,126);
-#CREATE INDEX ixi ON t2 (i);
-CREATE VIEW v1 AS SELECT t1.i from t1;
-CREATE TRIGGER trig_t2 AFTER UPDATE ON t2
-FOR EACH ROW BEGIN
-UPDATE v1 SET i = NEW.i WHERE i = OLD.i;
-END;
-|
-COMMIT;
-SELECT @@global.tx_isolation;
-@@global.tx_isolation
-REPEATABLE-READ
-EXPLAIN SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
-SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-i
-123
-124
-connection root1;
-UPDATE t2 SET t2.i=225 WHERE t2.i=125;
diff --git a/mysql-test/suite/row_lock/readme.txt b/mysql-test/suite/row_lock/readme.txt
deleted file mode 100644
index b43f04ecda4..00000000000
--- a/mysql-test/suite/row_lock/readme.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-All row lock test with InnoDB have to be executed with the options
-
---innodb_lock_wait_timeout=1
---innodb_locks_unsafe_for_binlog
-
-for example
-
-perl mysql-test-run.pl --mysqld=--innodb_lock_wait_timeout=2 --mysqld=--innodb_locks_unsafe_for_binlog --suite=row_lock innodb_row_lock_2
-
diff --git a/mysql-test/suite/row_lock/summary_of_sel_test.txt b/mysql-test/suite/row_lock/summary_of_sel_test.txt
deleted file mode 100644
index 0fa332e957a..00000000000
--- a/mysql-test/suite/row_lock/summary_of_sel_test.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-Test plan:
-Create 2 tables with a primary key and 3 integer columns. Both get the same rows (1,123,1,123),(2,124,2,124),(3,125,3,125),(4,126,4,126). The second and third column may get an index to have cases with, without and mutilple index. Create views on the tables. Create an update trigger. Create a stored procedure updating the table. Create a stored function updating the table and deliver the key as result.
-
-The test isself consists of 2 sessions (transactions) running in "parallel" (same user "root") accessing and locking the same tables on basis of a row lock. Expected is that both sessions(transactions) can update the table successfully.
-
-First session
-execute an explain to every select and one of the following selects on the first half of table t1:
-- select ... where ... for update;
-- select ... where ... lock in share mode;
-- select ... where ... for update;
-- select ... where ... lock in share mode;
-- select ... ignore index ... where ... for update;
-- select ... ignore index ... where ... lock in share mode;
-- select ... where (select...) ... for update;
-- select ... where (select...) ... lock in share mode;
-- (select ... where) union (select ... where) for update;
-- (select ... where) union (select ... where) lock in...;
-- select ... where ... for update;
-- select ... where ... lock in ...;
-- select ... where ... for update;
-- select ... where ... lock in ...;
-Then executes
-- update
-- delete
-- trigger accessing table t1
-- stored procedure accessing table t1
-- stored function accessing table t1
-
-Second session
-executes the same on the last half of table t1
-
-call of mysqld with option
---innodb_locks_unsafe_for_binlog
-
-As the tests above work with small tables (<10 rows) there must be at least one test with a big table (>1000 rows) doing a table scan.
-
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_1.test b/mysql-test/suite/row_lock/t/innodb_row_lock_1.test
deleted file mode 100644
index e0440fe2669..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_1.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_2.test b/mysql-test/suite/row_lock/t/innodb_row_lock_2.test
deleted file mode 100644
index 5cb3ea9f2d9..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_2.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-let $indext1= #CREATE INDEX ixi ON t1 (i);
-let $indext2= #CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_3.test b/mysql-test/suite/row_lock/t/innodb_row_lock_3.test
deleted file mode 100644
index 11f4dc423d6..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_3.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-let $indext1= #CREATE INDEX ixi ON t1 (i);
-let $indext2= #CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_4.test b/mysql-test/suite/row_lock/t/innodb_row_lock_4.test
deleted file mode 100644
index 0a8ca9c13a0..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_4.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_5.test b/mysql-test/suite/row_lock/t/innodb_row_lock_5.test
deleted file mode 100644
index 7e411d31649..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_5.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i,t2.i FROM t1 ignore index (ixi),t2 IGNORE INDEX (ixi) WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_big_tab.test b/mysql-test/suite/row_lock/t/innodb_row_lock_big_tab.test
deleted file mode 100644
index 0c5b8b41bd5..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_big_tab.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < half_t1() AND t2.i=t1.i LOCK IN SHARE MODE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_big_tab.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_big_tab_1.test b/mysql-test/suite/row_lock/t/innodb_row_lock_big_tab_1.test
deleted file mode 100644
index a12a07d82a9..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_big_tab_1.test
+++ /dev/null
@@ -1,10 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $nbrows= 40;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.k % 2= 0 AND t1.k = t2.k LOCK IN SHARE MODE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_big_tab_1.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_big_tab_2.test b/mysql-test/suite/row_lock/t/innodb_row_lock_big_tab_2.test
deleted file mode 100644
index 49e834eb2ce..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_big_tab_2.test
+++ /dev/null
@@ -1,10 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $nbrows= 40;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.k % 2= 0 AND t1.k = t2.k LOCK IN SHARE MODE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_big_tab_2.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_trig_1.test b/mysql-test/suite/row_lock/t/innodb_row_lock_trig_1.test
deleted file mode 100644
index 225513d3f87..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_trig_1.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_trig.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_trig_2.test b/mysql-test/suite/row_lock/t/innodb_row_lock_trig_2.test
deleted file mode 100644
index 88dee5f23f8..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_trig_2.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= #CREATE INDEX ixi ON t1 (i);
-let $indext2= #CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_trig.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_view_1.test b/mysql-test/suite/row_lock/t/innodb_row_lock_view_1.test
deleted file mode 100644
index d6381e1da5b..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_view_1.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_view_2.test b/mysql-test/suite/row_lock/t/innodb_row_lock_view_2.test
deleted file mode 100644
index ee45e683669..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_view_2.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_view_mix_1.test b/mysql-test/suite/row_lock/t/innodb_row_lock_view_mix_1.test
deleted file mode 100644
index 49cba88dd23..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_view_mix_1.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_mix.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_view_mix_2.test b/mysql-test/suite/row_lock/t/innodb_row_lock_view_mix_2.test
deleted file mode 100644
index b07f3a3378a..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_view_mix_2.test
+++ /dev/null
@@ -1,10 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-#let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-let $select= SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_mix.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_view_storedp_1.test b/mysql-test/suite/row_lock/t/innodb_row_lock_view_storedp_1.test
deleted file mode 100644
index d507ff3296f..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_view_storedp_1.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_storedp.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_view_storedp_2.test b/mysql-test/suite/row_lock/t/innodb_row_lock_view_storedp_2.test
deleted file mode 100644
index a1bfb16055e..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_view_storedp_2.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= #CREATE INDEX ixi ON t1 (i);
-let $indext2= #CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_storedp.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_view_trig_1.test b/mysql-test/suite/row_lock/t/innodb_row_lock_view_trig_1.test
deleted file mode 100644
index 24c76532d17..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_view_trig_1.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_trig.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/innodb_row_lock_view_trig_2.test b/mysql-test/suite/row_lock/t/innodb_row_lock_view_trig_2.test
deleted file mode 100644
index a8a67d77979..00000000000
--- a/mysql-test/suite/row_lock/t/innodb_row_lock_view_trig_2.test
+++ /dev/null
@@ -1,9 +0,0 @@
---source include/have_innodb.inc
-SELECT @@global.innodb_table_locks into @table_locks;
-SET @@global.innodb_table_locks= OFF;
-let $engine= InnoDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= #CREATE INDEX ixi ON t1 (i);
-let $indext2= #CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_trig.inc
-SET @@global.innodb_table_locks= @table_locks;
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_1.test b/mysql-test/suite/row_lock/t/ndb_row_lock_1.test
deleted file mode 100644
index 6ac2e829008..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_1.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_2.test b/mysql-test/suite/row_lock/t/ndb_row_lock_2.test
deleted file mode 100644
index 994ecba96b0..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_2.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-let $indext1= #CREATE INDEX ixi ON t1 (i);
-let $indext2= #CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_3.test b/mysql-test/suite/row_lock/t/ndb_row_lock_3.test
deleted file mode 100644
index 2de43c61c2a..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_3.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-let $indext1= #CREATE INDEX ixi ON t1 (i);
-let $indext2= #CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_4.test b/mysql-test/suite/row_lock/t/ndb_row_lock_4.test
deleted file mode 100644
index 72b20488c74..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_4.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_5.test b/mysql-test/suite/row_lock/t/ndb_row_lock_5.test
deleted file mode 100644
index 045f127a4ef..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_5.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i,t2.i FROM t1 ignore index (ixi),t2 IGNORE INDEX (ixi) WHERE t1.i<125 AND t2.i=t1.i LOCK IN SHARE MODE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_big_tab.test b/mysql-test/suite/row_lock/t/ndb_row_lock_big_tab.test
deleted file mode 100644
index bf2df104e03..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_big_tab.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < half_t1() AND t2.i=t1.i LOCK IN SHARE MODE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_big_tab.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_big_tab_1.test b/mysql-test/suite/row_lock/t/ndb_row_lock_big_tab_1.test
deleted file mode 100644
index 4d32991d379..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_big_tab_1.test
+++ /dev/null
@@ -1,7 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $nbrows= 200;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < t1.k % 2 = 0 AND t2.k=t1.k LOCK IN SHARE MODE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_big_tab_1.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_big_tab_2.test b/mysql-test/suite/row_lock/t/ndb_row_lock_big_tab_2.test
deleted file mode 100644
index 894a83fc1b0..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_big_tab_2.test
+++ /dev/null
@@ -1,7 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $nbrows= 200;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < t1.k % 2 = 0 AND t2.k=t1.k LOCK IN SHARE MODE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_big_tab_2.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_trig_1.test b/mysql-test/suite/row_lock/t/ndb_row_lock_trig_1.test
deleted file mode 100644
index a5586a6101e..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_trig_1.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_trig.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_trig_2.test b/mysql-test/suite/row_lock/t/ndb_row_lock_trig_2.test
deleted file mode 100644
index 7af13697ccc..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_trig_2.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= #CREATE INDEX ixi ON t1 (i);
-let $indext2= #CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_trig.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_view_1.test b/mysql-test/suite/row_lock/t/ndb_row_lock_view_1.test
deleted file mode 100644
index a1aaf5ab441..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_view_1.test
+++ /dev/null
@@ -1,7 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view.inc
-
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_view_2.test b/mysql-test/suite/row_lock/t/ndb_row_lock_view_2.test
deleted file mode 100644
index b8feef693e7..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_view_2.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_view_mix_1.test b/mysql-test/suite/row_lock/t/ndb_row_lock_view_mix_1.test
deleted file mode 100644
index a97626048d3..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_view_mix_1.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i<125 AND t2.i=t1.i FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_mix.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_view_mix_2.test b/mysql-test/suite/row_lock/t/ndb_row_lock_view_mix_2.test
deleted file mode 100644
index e7a9a715785..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_view_mix_2.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT v1.i FROM v1 WHERE v1.i<125 FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_mix.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_view_storedp_1.test b/mysql-test/suite/row_lock/t/ndb_row_lock_view_storedp_1.test
deleted file mode 100644
index f57bcb3dd1b..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_view_storedp_1.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_storedp.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_view_storedp_2.test b/mysql-test/suite/row_lock/t/ndb_row_lock_view_storedp_2.test
deleted file mode 100644
index b0aaa38fb93..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_view_storedp_2.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= #CREATE INDEX ixi ON t1 (i);
-let $indext2= #CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_storedp.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_view_trig_1.test b/mysql-test/suite/row_lock/t/ndb_row_lock_view_trig_1.test
deleted file mode 100644
index 9c4128d78bf..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_view_trig_1.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= CREATE INDEX ixi ON t1 (i);
-let $indext2= CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_trig.inc
diff --git a/mysql-test/suite/row_lock/t/ndb_row_lock_view_trig_2.test b/mysql-test/suite/row_lock/t/ndb_row_lock_view_trig_2.test
deleted file mode 100644
index 38c9472fb3d..00000000000
--- a/mysql-test/suite/row_lock/t/ndb_row_lock_view_trig_2.test
+++ /dev/null
@@ -1,6 +0,0 @@
---source include/have_ndb.inc
-let $engine= NDB;
-let $select= SELECT t1.i FROM t1 WHERE t1.i< 125 FOR UPDATE;
-let $indext1= #CREATE INDEX ixi ON t1 (i);
-let $indext2= #CREATE INDEX ixi ON t2 (i);
---source suite/row_lock/include/row_lock_view_trig.inc
From 11c57540f73aa42099c3036498644bb41def1dbd Mon Sep 17 00:00:00 2001
From: "kostja@bodhi.(none)" <>
Date: Fri, 27 Jul 2007 16:37:29 +0400
Subject: [PATCH 17/29] A fix and a test case for Bug#24918 drop table and lock
/ inconsistent between perm and temp tables. Review fixes.
The original bug report complains that if we locked a temporary table
with LOCK TABLES statement, we would not leave LOCK TABLES mode
when this temporary table is dropped.
Additionally, the bug was escalated when it was discovered than
when a temporary transactional table that was previously
locked with LOCK TABLES statement was dropped, futher actions with
this table, such as UNLOCK TABLES, would lead to a crash.
The problem originates from incomplete support of transactional temporary
tables. When we added calls to handler::store_lock()/handler::external_lock()
to operations that work with such tables, we only covered the normal
server code flow and did not cover LOCK TABLES mode.
In LOCK TABLES mode, ::external_lock(LOCK) would sometimes be called without
matching ::external_lock(UNLOCK), e.g. when a transactional temporary table
was dropped. Additionally, this table would be left in the list of LOCKed
TABLES.
The patch aims to address this inadequacy. Now, whenever an instance
of 'handler' is destroyed, we assert that it was priorly
external_lock(UNLOCK)-ed. All the places that violate this assert
were fixed.
This patch introduces no changes in behavior -- the discrepancy in
behavior will be fixed when we start calling ::store_lock()/::external_lock()
for all tables, regardless whether they are transactional or not,
temporary or not.
---
mysql-test/r/innodb_mysql.result | 28 ++++++++++++++++++++++
mysql-test/t/innodb_mysql.test | 34 +++++++++++++++++++++++++++
sql/handler.h | 40 +++++++++++++++++++++++++++++---
sql/lock.cc | 35 +++++++++++++++++++++++-----
sql/mysql_priv.h | 3 ++-
sql/opt_range.cc | 6 ++---
sql/sql_base.cc | 40 ++++++++++++++++++++++++++++----
sql/sql_class.h | 24 ++++++++++++++-----
sql/sql_table.cc | 10 ++++----
9 files changed, 192 insertions(+), 28 deletions(-)
diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result
index f32878309b8..6fb98f509ef 100644
--- a/mysql-test/r/innodb_mysql.result
+++ b/mysql-test/r/innodb_mysql.result
@@ -739,4 +739,32 @@ drop table if exists t1;
create table t1 (a int) engine=innodb;
alter table t1 alter a set default 1;
drop table t1;
+
+Bug#24918 drop table and lock / inconsistent between
+perm and temp tables
+
+Check transactional tables under LOCK TABLES
+
+drop table if exists t24918, t24918_tmp, t24918_trans, t24918_trans_tmp,
+t24918_access;
+create table t24918_access (id int);
+create table t24918 (id int) engine=myisam;
+create temporary table t24918_tmp (id int) engine=myisam;
+create table t24918_trans (id int) engine=innodb;
+create temporary table t24918_trans_tmp (id int) engine=innodb;
+lock table t24918 write, t24918_tmp write, t24918_trans write, t24918_trans_tmp write;
+drop table t24918;
+select * from t24918_access;
+ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES
+drop table t24918_trans;
+select * from t24918_access;
+ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES
+drop table t24918_trans_tmp;
+select * from t24918_access;
+ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES
+drop table t24918_tmp;
+select * from t24918_access;
+ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES
+unlock tables;
+drop table t24918_access;
End of 5.0 tests
diff --git a/mysql-test/t/innodb_mysql.test b/mysql-test/t/innodb_mysql.test
index 0d43d13ec3a..60d46863bfd 100644
--- a/mysql-test/t/innodb_mysql.test
+++ b/mysql-test/t/innodb_mysql.test
@@ -754,4 +754,38 @@ create table t1 (a int) engine=innodb;
alter table t1 alter a set default 1;
drop table t1;
+
+--echo
+--echo Bug#24918 drop table and lock / inconsistent between
+--echo perm and temp tables
+--echo
+--echo Check transactional tables under LOCK TABLES
+--echo
+--disable_warnings
+drop table if exists t24918, t24918_tmp, t24918_trans, t24918_trans_tmp,
+t24918_access;
+--enable_warnings
+create table t24918_access (id int);
+create table t24918 (id int) engine=myisam;
+create temporary table t24918_tmp (id int) engine=myisam;
+create table t24918_trans (id int) engine=innodb;
+create temporary table t24918_trans_tmp (id int) engine=innodb;
+
+lock table t24918 write, t24918_tmp write, t24918_trans write, t24918_trans_tmp write;
+drop table t24918;
+--error ER_TABLE_NOT_LOCKED
+select * from t24918_access;
+drop table t24918_trans;
+--error ER_TABLE_NOT_LOCKED
+select * from t24918_access;
+drop table t24918_trans_tmp;
+--error ER_TABLE_NOT_LOCKED
+select * from t24918_access;
+drop table t24918_tmp;
+--error ER_TABLE_NOT_LOCKED
+select * from t24918_access;
+unlock tables;
+
+drop table t24918_access;
+
--echo End of 5.0 tests
diff --git a/sql/handler.h b/sql/handler.h
index a3767573178..cd9f9a91008 100644
--- a/sql/handler.h
+++ b/sql/handler.h
@@ -508,6 +508,29 @@ class handler :public Sql_alloc
*/
virtual int rnd_init(bool scan) =0;
virtual int rnd_end() { return 0; }
+ /**
+ Is not invoked for non-transactional temporary tables.
+
+ Tells the storage engine that we intend to read or write data
+ from the table. This call is prefixed with a call to handler::store_lock()
+ and is invoked only for those handler instances that stored the lock.
+
+ Calls to rnd_init/index_init are prefixed with this call. When table
+ IO is complete, we call external_lock(F_UNLCK).
+ A storage engine writer should expect that each call to
+ ::external_lock(F_[RD|WR]LOCK is followed by a call to
+ ::external_lock(F_UNLCK). If it is not, it is a bug in MySQL.
+
+ The name and signature originate from the first implementation
+ in MyISAM, which would call fcntl to set/clear an advisory
+ lock on the data file in this method.
+
+ @param lock_type F_RDLCK, F_WRLCK, F_UNLCK
+
+ @return non-0 in case of failure, 0 in case of success.
+ When lock_type is F_UNLCK, the return value is ignored.
+ */
+ virtual int external_lock(THD *thd, int lock_type) { return 0; }
public:
const handlerton *ht; /* storage engine of this handler */
@@ -548,6 +571,7 @@ public:
uint raid_type,raid_chunks;
FT_INFO *ft_handler;
enum {NONE=0, INDEX, RND} inited;
+ bool locked;
bool auto_increment_column_changed;
bool implicit_emptied; /* Can be !=0 only if HEAP */
const COND *pushed_cond;
@@ -560,10 +584,11 @@ public:
create_time(0), check_time(0), update_time(0),
key_used_on_scan(MAX_KEY), active_index(MAX_KEY),
ref_length(sizeof(my_off_t)), block_size(0),
- raid_type(0), ft_handler(0), inited(NONE), implicit_emptied(0),
+ raid_type(0), ft_handler(0), inited(NONE),
+ locked(FALSE), implicit_emptied(0),
pushed_cond(NULL)
{}
- virtual ~handler(void) { /* TODO: DBUG_ASSERT(inited == NONE); */ }
+ virtual ~handler(void) { DBUG_ASSERT(locked == FALSE); /* TODO: DBUG_ASSERT(inited == NONE); */ }
virtual handler *clone(MEM_ROOT *mem_root);
int ha_open(const char *name, int mode, int test_if_locked);
void adjust_next_insert_id_after_explicit_value(ulonglong nr);
@@ -597,6 +622,13 @@ public:
virtual const char *index_type(uint key_number) { DBUG_ASSERT(0); return "";}
+ int ha_external_lock(THD *thd, int lock_type)
+ {
+ int rc;
+ DBUG_ENTER("ha_external_lock");
+ locked= lock_type != F_UNLCK;
+ DBUG_RETURN(external_lock(thd, lock_type));
+ }
int ha_index_init(uint idx)
{
DBUG_ENTER("ha_index_init");
@@ -689,7 +721,6 @@ public:
virtual int extra_opt(enum ha_extra_function operation, ulong cache_size)
{ return extra(operation); }
virtual int reset() { return extra(HA_EXTRA_RESET); }
- virtual int external_lock(THD *thd, int lock_type) { return 0; }
virtual void unlock_row() {}
virtual int start_stmt(THD *thd, thr_lock_type lock_type) {return 0;}
/*
@@ -837,6 +868,9 @@ public:
/* lock_count() can be more than one if the table is a MERGE */
virtual uint lock_count(void) const { return 1; }
+ /**
+ Is not invoked for non-transactional temporary tables.
+ */
virtual THR_LOCK_DATA **store_lock(THD *thd,
THR_LOCK_DATA **to,
enum thr_lock_type lock_type)=0;
diff --git a/sql/lock.cc b/sql/lock.cc
index 93358e56701..f730ac56d35 100644
--- a/sql/lock.cc
+++ b/sql/lock.cc
@@ -151,7 +151,8 @@ MYSQL_LOCK *mysql_lock_tables(THD *thd, TABLE **tables, uint count,
}
thd->proc_info="System lock";
- if (lock_external(thd, tables, count))
+ if (sql_lock->table_count && lock_external(thd, sql_lock->table,
+ sql_lock->table_count))
{
/* Clear the lock type of all lock data to avoid reusage. */
reset_lock_data(sql_lock);
@@ -246,12 +247,12 @@ static int lock_external(THD *thd, TABLE **tables, uint count)
(*tables)->reginfo.lock_type <= TL_READ_NO_INSERT))
lock_type=F_RDLCK;
- if ((error=(*tables)->file->external_lock(thd,lock_type)))
+ if ((error= (*tables)->file->ha_external_lock(thd,lock_type)))
{
print_lock_error(error, (*tables)->file->table_type());
for (; i-- ; tables--)
{
- (*tables)->file->external_lock(thd, F_UNLCK);
+ (*tables)->file->ha_external_lock(thd, F_UNLCK);
(*tables)->current_lock=F_UNLCK;
}
DBUG_RETURN(error);
@@ -353,10 +354,28 @@ void mysql_unlock_read_tables(THD *thd, MYSQL_LOCK *sql_lock)
}
+/**
+ Try to find the table in the list of locked tables.
+ In case of success, unlock the table and remove it from this list.
-void mysql_lock_remove(THD *thd, MYSQL_LOCK *locked,TABLE *table)
+ @note This function has a legacy side effect: the table is
+ unlocked even if it is not found in the locked list.
+ It's not clear if this side effect is intentional or still
+ desirable. It might lead to unmatched calls to
+ unlock_external(). Moreover, a discrepancy can be left
+ unnoticed by the storage engine, because in
+ unlock_external() we call handler::external_lock(F_UNLCK) only
+ if table->current_lock is not F_UNLCK.
+
+ @param always_unlock specify explicitly if the legacy side
+ effect is desired.
+*/
+
+void mysql_lock_remove(THD *thd, MYSQL_LOCK *locked,TABLE *table,
+ bool always_unlock)
{
- mysql_unlock_some_tables(thd, &table,1);
+ if (always_unlock == TRUE)
+ mysql_unlock_some_tables(thd, &table, /* table count */ 1);
if (locked)
{
reg1 uint i;
@@ -370,6 +389,10 @@ void mysql_lock_remove(THD *thd, MYSQL_LOCK *locked,TABLE *table)
DBUG_ASSERT(table->lock_position == i);
+ /* Unlock if not yet unlocked */
+ if (always_unlock == FALSE)
+ mysql_unlock_some_tables(thd, &table, /* table count */ 1);
+
/* Decrement table_count in advance, making below expressions easier */
old_tables= --locked->table_count;
@@ -623,7 +646,7 @@ static int unlock_external(THD *thd, TABLE **table,uint count)
if ((*table)->current_lock != F_UNLCK)
{
(*table)->current_lock = F_UNLCK;
- if ((error=(*table)->file->external_lock(thd, F_UNLCK)))
+ if ((error= (*table)->file->ha_external_lock(thd, F_UNLCK)))
{
error_code=error;
print_lock_error(error_code, (*table)->file->table_type());
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index d14aab57489..ca6aa8ecab0 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -1452,7 +1452,8 @@ MYSQL_LOCK *mysql_lock_tables(THD *thd, TABLE **table, uint count,
void mysql_unlock_tables(THD *thd, MYSQL_LOCK *sql_lock);
void mysql_unlock_read_tables(THD *thd, MYSQL_LOCK *sql_lock);
void mysql_unlock_some_tables(THD *thd, TABLE **table,uint count);
-void mysql_lock_remove(THD *thd, MYSQL_LOCK *locked,TABLE *table);
+void mysql_lock_remove(THD *thd, MYSQL_LOCK *locked,TABLE *table,
+ bool always_unlock);
void mysql_lock_abort(THD *thd, TABLE *table);
bool mysql_lock_abort_for_thread(THD *thd, TABLE *table);
MYSQL_LOCK *mysql_lock_merge(MYSQL_LOCK *a,MYSQL_LOCK *b);
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index 247f0eada49..d978c8882ac 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -972,7 +972,7 @@ QUICK_RANGE_SELECT::~QUICK_RANGE_SELECT()
DBUG_PRINT("info", ("Freeing separate handler 0x%lx (free: %d)", (long) file,
free_file));
file->reset();
- file->external_lock(current_thd, F_UNLCK);
+ file->ha_external_lock(current_thd, F_UNLCK);
file->close();
}
}
@@ -1142,7 +1142,7 @@ int QUICK_RANGE_SELECT::init_ror_merged_scan(bool reuse_handler)
/* Caller will free the memory */
goto failure; /* purecov: inspected */
}
- if (file->external_lock(thd, F_RDLCK))
+ if (file->ha_external_lock(thd, F_RDLCK))
goto failure;
if (!head->no_keyread)
{
@@ -1152,7 +1152,7 @@ int QUICK_RANGE_SELECT::init_ror_merged_scan(bool reuse_handler)
if (file->extra(HA_EXTRA_RETRIEVE_PRIMARY_KEY) ||
init() || reset())
{
- file->external_lock(thd, F_UNLCK);
+ file->ha_external_lock(thd, F_UNLCK);
file->close();
goto failure;
}
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 3860dfa1ded..61847a6b168 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -1037,6 +1037,31 @@ TABLE **find_temporary_table(THD *thd, const char *db, const char *table_name)
return 0; // Not a temporary table
}
+
+/**
+ Drop a temporary table.
+
+ Try to locate the table in the list of thd->temporary_tables.
+ If the table is found:
+ - if the table is in thd->locked_tables, unlock it and
+ remove it from the list of locked tables. Currently only transactional
+ temporary tables are present in the locked_tables list.
+ - Close the temporary table, remove its .FRM
+ - remove the table from the list of temporary tables
+
+ This function is used to drop user temporary tables, as well as
+ internal tables created in CREATE TEMPORARY TABLE ... SELECT
+ or ALTER TABLE. Even though part of the work done by this function
+ is redundant when the table is internal, as long as we
+ link both internal and user temporary tables into the same
+ thd->temporary_tables list, it's impossible to tell here whether
+ we're dealing with an internal or a user temporary table.
+
+ @retval TRUE the table was not found in the list of temporary tables
+ of this thread
+ @retval FALSE the table was found and dropped successfully.
+*/
+
bool close_temporary_table(THD *thd, const char *db, const char *table_name)
{
TABLE *table,**prev;
@@ -1045,6 +1070,11 @@ bool close_temporary_table(THD *thd, const char *db, const char *table_name)
return 1;
table= *prev;
*prev= table->next;
+ /*
+ If LOCK TABLES list is not empty and contains this table,
+ unlock the table and remove the table from this list.
+ */
+ mysql_lock_remove(thd, thd->locked_tables, table, FALSE);
close_temporary(table, 1);
if (thd->slave_thread)
--slave_open_temp_tables;
@@ -1120,7 +1150,7 @@ TABLE *unlink_open_table(THD *thd, TABLE *list, TABLE *find)
!memcmp(list->s->table_cache_key, key, key_length))
{
if (thd->locked_tables)
- mysql_lock_remove(thd, thd->locked_tables,list);
+ mysql_lock_remove(thd, thd->locked_tables, list, TRUE);
VOID(hash_delete(&open_cache,(byte*) list)); // Close table
}
else
@@ -1151,6 +1181,8 @@ TABLE *unlink_open_table(THD *thd, TABLE *list, TABLE *find)
dropped is already unlocked. In the former case it will
also remove lock on the table. But one should not rely on
this behaviour as it may change in future.
+ Currently, however, this function is never called for a
+ table that was locked with LOCK TABLES.
*/
void drop_open_table(THD *thd, TABLE *table, const char *db_name,
@@ -2099,7 +2131,7 @@ bool close_data_tables(THD *thd,const char *db, const char *table_name)
if (!strcmp(table->s->table_name, table_name) &&
!strcmp(table->s->db, db))
{
- mysql_lock_remove(thd, thd->locked_tables,table);
+ mysql_lock_remove(thd, thd->locked_tables, table, TRUE);
table->file->close();
table->db_stat=0;
}
@@ -2239,7 +2271,7 @@ void close_old_data_files(THD *thd, TABLE *table, bool morph_locks,
instances of this table.
*/
mysql_lock_abort(thd, table);
- mysql_lock_remove(thd, thd->locked_tables, table);
+ mysql_lock_remove(thd, thd->locked_tables, table, TRUE);
/*
We want to protect the table from concurrent DDL operations
(like RENAME TABLE) until we will re-open and re-lock it.
@@ -2343,7 +2375,7 @@ bool drop_locked_tables(THD *thd,const char *db, const char *table_name)
if (!strcmp(table->s->table_name, table_name) &&
!strcmp(table->s->db, db))
{
- mysql_lock_remove(thd, thd->locked_tables,table);
+ mysql_lock_remove(thd, thd->locked_tables, table, TRUE);
VOID(hash_delete(&open_cache,(byte*) table));
found=1;
}
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 058f130d4e7..6ffbd9b4ac7 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -995,13 +995,25 @@ enum prelocked_mode_type {NON_PRELOCKED= 0, PRELOCKED= 1,
class Open_tables_state
{
public:
- /*
- open_tables - list of regular tables in use by this thread
- temporary_tables - list of temp tables in use by this thread
- handler_tables - list of tables that were opened with HANDLER OPEN
- and are still in use by this thread
+ /**
+ List of regular tables in use by this thread. Contains temporary and
+ base tables that were opened with @see open_tables().
*/
- TABLE *open_tables, *temporary_tables, *handler_tables, *derived_tables;
+ TABLE *open_tables;
+ /**
+ List of temporary tables used by this thread. Contains user-level
+ temporary tables, created with CREATE TEMPORARY TABLE, and
+ internal temporary tables, created, e.g., to resolve a SELECT,
+ or for an intermediate table used in ALTER.
+ XXX Why are internal temporary tables added to this list?
+ */
+ TABLE *temporary_tables;
+ /**
+ List of tables that were opened with HANDLER OPEN and are
+ still in use by this thread.
+ */
+ TABLE *handler_tables;
+ TABLE *derived_tables;
/*
During a MySQL session, one can lock tables in two modes: automatic
or manual. In automatic mode all necessary tables are locked just before
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index e02595836ca..f11082a712c 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -3791,10 +3791,10 @@ view_err:
{
VOID(pthread_mutex_lock(&LOCK_open));
wait_while_table_is_used(thd, table, HA_EXTRA_FORCE_REOPEN);
- table->file->external_lock(thd, F_WRLCK);
+ table->file->ha_external_lock(thd, F_WRLCK);
alter_table_manage_keys(table, table->file->indexes_are_disabled(),
alter_info->keys_onoff);
- table->file->external_lock(thd, F_UNLCK);
+ table->file->ha_external_lock(thd, F_UNLCK);
VOID(pthread_mutex_unlock(&LOCK_open));
error= ha_commit_stmt(thd);
if (ha_commit(thd))
@@ -3813,7 +3813,7 @@ view_err:
The following function call will free the new_table pointer,
in close_temporary_table(), so we can safely directly jump to err
*/
- close_temporary_table(thd,new_db,tmp_name);
+ close_temporary_table(thd, new_db, tmp_name);
goto err;
}
/* Close lock if this is a transactional table */
@@ -4086,7 +4086,7 @@ copy_data_between_tables(TABLE *from,TABLE *to,
if (!(copy= new Copy_field[to->s->fields]))
DBUG_RETURN(-1); /* purecov: inspected */
- if (to->file->external_lock(thd, F_WRLCK))
+ if (to->file->ha_external_lock(thd, F_WRLCK))
DBUG_RETURN(-1);
/* We need external lock before we can disable/enable keys */
@@ -4238,7 +4238,7 @@ copy_data_between_tables(TABLE *from,TABLE *to,
free_io_cache(from);
*copied= found_count;
*deleted=delete_count;
- if (to->file->external_lock(thd,F_UNLCK))
+ if (to->file->ha_external_lock(thd,F_UNLCK))
error=1;
DBUG_RETURN(error > 0 ? -1 : 0);
}
From d5293e45840f532c9100cd37c87bdef9ed879601 Mon Sep 17 00:00:00 2001
From: "jperkin@production.mysql.com" <>
Date: Fri, 27 Jul 2007 15:14:21 +0200
Subject: [PATCH 18/29] More fixes and cleanups for bug#28585:
- make the 'dist-hook' from top-level Makefile work again.
- we can find my_print_defaults from --basedir by parsing command
line arguments prior to running my_print_defaults.
- take advantage of additional command line parsing and allow the
--no-defaults etc arguments to work anywhere rather than having
to be the first argument.
- find SQL files either from binary archive or source install.
- consolidate and tidy code and error messages.
---
scripts/mysql_install_db.sh | 109 ++++++++++++++++++++++++++----------
1 file changed, 79 insertions(+), 30 deletions(-)
diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh
index 7e1f6217b7b..a66129af1d3 100644
--- a/scripts/mysql_install_db.sh
+++ b/scripts/mysql_install_db.sh
@@ -32,12 +32,6 @@ in_rpm=0
ip_only=0
windows=0
-case "$1" in
- --no-defaults|--defaults-file=*|--defaults-extra-file=*)
- defaults="$1"; shift
- ;;
-esac
-
usage()
{
cat <
Date: Fri, 27 Jul 2007 16:56:29 +0200
Subject: [PATCH 19/29] Bug #29929 LOCK TABLES does not pre-lock tables used in
triggers of the locked tables
When a table was explicitly locked with LOCK TABLES no associated
tables from any related trigger on the subject table were locked.
As a result of this the user could experience unexpected locking
behavior and statement failures similar to "failed: 1100: Table'xx'
was not locked with LOCK TABLES".
This patch fixes this problem by making sure triggers are
pre-loaded on any statement if the subject table was explicitly
locked with LOCK TABLES.
---
mysql-test/r/sp-prelocking.result | 30 +++++++
mysql-test/t/sp-prelocking.test | 31 +++++++
sql/sql_lex.cc | 135 +++++++++++++++++++++++++++++-
sql/table.cc | 129 ----------------------------
sql/table.h | 1 -
5 files changed, 193 insertions(+), 133 deletions(-)
diff --git a/mysql-test/r/sp-prelocking.result b/mysql-test/r/sp-prelocking.result
index c19bd1abd26..186b2c05d34 100644
--- a/mysql-test/r/sp-prelocking.result
+++ b/mysql-test/r/sp-prelocking.result
@@ -289,4 +289,34 @@ create table t1 select f_bug22427() as i;
ERROR 42S01: Table 't1' already exists
drop table t1;
drop function f_bug22427;
+#
+# Bug #29929 LOCK TABLES does not pre-lock tables used in triggers of the locked tables
+#
+DROP table IF EXISTS t1,t2;
+CREATE TABLE t1 (c1 INT);
+CREATE TABLE t2 (c2 INT);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (2);
+CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+UPDATE t2 SET c2= c2 + 1;
+END//
+# Take a table lock on t1.
+# This should pre-lock t2 through the trigger.
+LOCK TABLE t1 WRITE;
+INSERT INTO t1 VALUES (3);
+UNLOCK TABLES;
+LOCK TABLE t1 READ;
+INSERT INTO t2 values(4);
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+UNLOCK TABLES;
+SELECT * FROM t1;
+c1
+1
+3
+SELECT * FROM t2;
+c2
+3
+DROP TRIGGER t1_ai;
+DROP TABLE t1, t2;
End of 5.0 tests
diff --git a/mysql-test/t/sp-prelocking.test b/mysql-test/t/sp-prelocking.test
index 60e97260839..966c59a5789 100644
--- a/mysql-test/t/sp-prelocking.test
+++ b/mysql-test/t/sp-prelocking.test
@@ -356,4 +356,35 @@ create table t1 select f_bug22427() as i;
drop table t1;
drop function f_bug22427;
+--echo #
+--echo # Bug #29929 LOCK TABLES does not pre-lock tables used in triggers of the locked tables
+--echo #
+--disable_warnings
+DROP table IF EXISTS t1,t2;
+--enable_warnings
+CREATE TABLE t1 (c1 INT);
+CREATE TABLE t2 (c2 INT);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (2);
+DELIMITER //;
+CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+UPDATE t2 SET c2= c2 + 1;
+END//
+DELIMITER ;//
+--echo # Take a table lock on t1.
+--echo # This should pre-lock t2 through the trigger.
+LOCK TABLE t1 WRITE;
+INSERT INTO t1 VALUES (3);
+UNLOCK TABLES;
+LOCK TABLE t1 READ;
+--error ER_TABLE_NOT_LOCKED
+INSERT INTO t2 values(4);
+UNLOCK TABLES;
+SELECT * FROM t1;
+SELECT * FROM t2;
+DROP TRIGGER t1_ai;
+DROP TABLE t1, t2;
+
--echo End of 5.0 tests
+
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index c37d77345b6..106dcf88a84 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -2035,12 +2035,131 @@ void st_select_lex_unit::set_limit(SELECT_LEX *sl)
/**
- Update the parsed tree with information about triggers that
- may be fired when executing this statement.
+ @brief Set the initial purpose of this TABLE_LIST object in the list of used
+ tables.
+
+ We need to track this information on table-by-table basis, since when this
+ table becomes an element of the pre-locked list, it's impossible to identify
+ which SQL sub-statement it has been originally used in.
+
+ E.g.:
+
+ User request: SELECT * FROM t1 WHERE f1();
+ FUNCTION f1(): DELETE FROM t2; RETURN 1;
+ BEFORE DELETE trigger on t2: INSERT INTO t3 VALUES (old.a);
+
+ For this user request, the pre-locked list will contain t1, t2, t3
+ table elements, each needed for different DML.
+
+ The trigger event map is updated to reflect INSERT, UPDATE, DELETE,
+ REPLACE, LOAD DATA, CREATE TABLE .. SELECT, CREATE TABLE ..
+ REPLACE SELECT statements, and additionally ON DUPLICATE KEY UPDATE
+ clause.
*/
void st_lex::set_trg_event_type_for_tables()
{
+ enum trg_event_type trg_event;
+
+ uint8 new_trg_event_map= 0;
+
+ /*
+ Some auxiliary operations
+ (e.g. GRANT processing) create TABLE_LIST instances outside
+ the parser. Additionally, some commands (e.g. OPTIMIZE) change
+ the lock type for a table only after parsing is done. Luckily,
+ these do not fire triggers and do not need to pre-load them.
+ For these TABLE_LISTs set_trg_event_type is never called, and
+ trg_event_map is always empty. That means that the pre-locking
+ algorithm will ignore triggers defined on these tables, if
+ any, and the execution will either fail with an assert in
+ sql_trigger.cc or with an error that a used table was not
+ pre-locked, in case of a production build.
+
+ TODO: this usage pattern creates unnecessary module dependencies
+ and should be rewritten to go through the parser.
+ Table list instances created outside the parser in most cases
+ refer to mysql.* system tables. It is not allowed to have
+ a trigger on a system table, but keeping track of
+ initialization provides extra safety in case this limitation
+ is circumvented.
+ */
+
+ switch (sql_command) {
+ case SQLCOM_LOCK_TABLES:
+ /*
+ On a LOCK TABLE, all triggers must be pre-loaded for this TABLE_LIST
+ when opening an associated TABLE.
+ */
+ new_trg_event_map= static_cast
+ (1 << static_cast(TRG_EVENT_INSERT)) |
+ static_cast
+ (1 << static_cast(TRG_EVENT_UPDATE)) |
+ static_cast
+ (1 << static_cast(TRG_EVENT_DELETE));
+ break;
+ /*
+ Basic INSERT. If there is an additional ON DUPLIATE KEY UPDATE
+ clause, it will be handled later in this method.
+ */
+ case SQLCOM_INSERT: /* fall through */
+ case SQLCOM_INSERT_SELECT:
+ /*
+ LOAD DATA ... INFILE is expected to fire BEFORE/AFTER INSERT
+ triggers.
+ If the statement also has REPLACE clause, it will be
+ handled later in this method.
+ */
+ case SQLCOM_LOAD: /* fall through */
+ /*
+ REPLACE is semantically equivalent to INSERT. In case
+ of a primary or unique key conflict, it deletes the old
+ record and inserts a new one. So we also may need to
+ fire ON DELETE triggers. This functionality is handled
+ later in this method.
+ */
+ case SQLCOM_REPLACE: /* fall through */
+ case SQLCOM_REPLACE_SELECT:
+ /*
+ CREATE TABLE ... SELECT defaults to INSERT if the table or
+ view already exists. REPLACE option of CREATE TABLE ...
+ REPLACE SELECT is handled later in this method.
+ */
+ case SQLCOM_CREATE_TABLE:
+ new_trg_event_map|= static_cast
+ (1 << static_cast(TRG_EVENT_INSERT));
+ break;
+ /* Basic update and multi-update */
+ case SQLCOM_UPDATE: /* fall through */
+ case SQLCOM_UPDATE_MULTI:
+ new_trg_event_map|= static_cast
+ (1 << static_cast(TRG_EVENT_UPDATE));
+ break;
+ /* Basic delete and multi-delete */
+ case SQLCOM_DELETE: /* fall through */
+ case SQLCOM_DELETE_MULTI:
+ new_trg_event_map|= static_cast
+ (1 << static_cast(TRG_EVENT_DELETE));
+ break;
+ default:
+ break;
+ }
+
+ switch (duplicates) {
+ case DUP_UPDATE:
+ new_trg_event_map|= static_cast
+ (1 << static_cast(TRG_EVENT_UPDATE));
+ break;
+ case DUP_REPLACE:
+ new_trg_event_map|= static_cast
+ (1 << static_cast(TRG_EVENT_DELETE));
+ break;
+ case DUP_ERROR:
+ default:
+ break;
+ }
+
+
/*
Do not iterate over sub-selects, only the tables in the outermost
SELECT_LEX can be modified, if any.
@@ -2049,7 +2168,17 @@ void st_lex::set_trg_event_type_for_tables()
while (tables)
{
- tables->set_trg_event_type(this);
+ /*
+ This is a fast check to filter out statements that do
+ not change data, or tables on the right side, in case of
+ INSERT .. SELECT, CREATE TABLE .. SELECT and so on.
+ Here we also filter out OPTIMIZE statement and non-updateable
+ views, for which lock_type is TL_UNLOCK or TL_READ after
+ parsing.
+ */
+ if (static_cast(tables->lock_type) >=
+ static_cast(TL_WRITE_ALLOW_WRITE))
+ tables->trg_event_map= new_trg_event_map;
tables= tables->next_local;
}
}
diff --git a/sql/table.cc b/sql/table.cc
index f24f5c6fbcc..f27076076bf 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -1776,135 +1776,6 @@ void st_table::reset_item_list(List- *item_list) const
}
}
-
-/**
- Set the initial purpose of this TABLE_LIST object in the list of
- used tables. We need to track this information on table-by-
- table basis, since when this table becomes an element of the
- pre-locked list, it's impossible to identify which SQL
- sub-statement it has been originally used in.
-
- E.g.:
-
- User request: SELECT * FROM t1 WHERE f1();
- FUNCTION f1(): DELETE FROM t2; RETURN 1;
- BEFORE DELETE trigger on t2: INSERT INTO t3 VALUES (old.a);
-
- For this user request, the pre-locked list will contain t1, t2, t3
- table elements, each needed for different DML.
-
- This method is called immediately after parsing for tables
- of the table list of the top-level select lex.
-
- The trigger event map is updated to reflect INSERT, UPDATE, DELETE,
- REPLACE, LOAD DATA, CREATE TABLE .. SELECT, CREATE TABLE ..
- REPLACE SELECT statements, and additionally ON DUPLICATE KEY UPDATE
- clause.
-*/
-
-void
-TABLE_LIST::set_trg_event_type(const st_lex *lex)
-{
- enum trg_event_type trg_event;
-
- /*
- Some auxiliary operations
- (e.g. GRANT processing) create TABLE_LIST instances outside
- the parser. Additionally, some commands (e.g. OPTIMIZE) change
- the lock type for a table only after parsing is done. Luckily,
- these do not fire triggers and do not need to pre-load them.
- For these TABLE_LISTs set_trg_event_type is never called, and
- trg_event_map is always empty. That means that the pre-locking
- algorithm will ignore triggers defined on these tables, if
- any, and the execution will either fail with an assert in
- sql_trigger.cc or with an error that a used table was not
- pre-locked, in case of a production build.
-
- TODO: this usage pattern creates unnecessary module dependencies
- and should be rewritten to go through the parser.
- Table list instances created outside the parser in most cases
- refer to mysql.* system tables. It is not allowed to have
- a trigger on a system table, but keeping track of
- initialization provides extra safety in case this limitation
- is circumvented.
- */
-
- /*
- This is a fast check to filter out statements that do
- not change data, or tables on the right side, in case of
- INSERT .. SELECT, CREATE TABLE .. SELECT and so on.
- Here we also filter out OPTIMIZE statement and non-updateable
- views, for which lock_type is TL_UNLOCK or TL_READ after
- parsing.
- */
- if (static_cast(lock_type) < static_cast(TL_WRITE_ALLOW_WRITE))
- return;
-
- switch (lex->sql_command) {
- /*
- Basic INSERT. If there is an additional ON DUPLIATE KEY UPDATE
- clause, it will be handled later in this method.
- */
- case SQLCOM_INSERT: /* fall through */
- case SQLCOM_INSERT_SELECT:
- /*
- LOAD DATA ... INFILE is expected to fire BEFORE/AFTER INSERT
- triggers.
- If the statement also has REPLACE clause, it will be
- handled later in this method.
- */
- case SQLCOM_LOAD: /* fall through */
- /*
- REPLACE is semantically equivalent to INSERT. In case
- of a primary or unique key conflict, it deletes the old
- record and inserts a new one. So we also may need to
- fire ON DELETE triggers. This functionality is handled
- later in this method.
- */
- case SQLCOM_REPLACE: /* fall through */
- case SQLCOM_REPLACE_SELECT:
- /*
- CREATE TABLE ... SELECT defaults to INSERT if the table or
- view already exists. REPLACE option of CREATE TABLE ...
- REPLACE SELECT is handled later in this method.
- */
- case SQLCOM_CREATE_TABLE:
- trg_event= TRG_EVENT_INSERT;
- break;
- /* Basic update and multi-update */
- case SQLCOM_UPDATE: /* fall through */
- case SQLCOM_UPDATE_MULTI:
- trg_event= TRG_EVENT_UPDATE;
- break;
- /* Basic delete and multi-delete */
- case SQLCOM_DELETE: /* fall through */
- case SQLCOM_DELETE_MULTI:
- trg_event= TRG_EVENT_DELETE;
- break;
- default:
- /*
- OK to return, since value of 'duplicates' is irrelevant
- for non-updating commands.
- */
- return;
- }
- trg_event_map|= static_cast(1 << static_cast(trg_event));
-
- switch (lex->duplicates) {
- case DUP_UPDATE:
- trg_event= TRG_EVENT_UPDATE;
- break;
- case DUP_REPLACE:
- trg_event= TRG_EVENT_DELETE;
- break;
- case DUP_ERROR:
- default:
- return;
- }
- trg_event_map|= static_cast(1 << static_cast(trg_event));
-}
-
-
/*
calculate md5 of query
diff --git a/sql/table.h b/sql/table.h
index f8f7d7f06b7..f411ce489c4 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -770,7 +770,6 @@ struct TABLE_LIST
void reinit_before_use(THD *thd);
Item_subselect *containing_subselect();
- void set_trg_event_type(const st_lex *lex);
private:
bool prep_check_option(THD *thd, uint8 check_opt_type);
bool prep_where(THD *thd, Item **conds, bool no_where_clause);
From 519ebab04edcbda779d304db7f7889f106ee9782 Mon Sep 17 00:00:00 2001
From: "kent@mysql.com/kent-amd64.(none)" <>
Date: Fri, 27 Jul 2007 17:39:07 +0200
Subject: [PATCH 20/29] SSL/Makefile.am mysql-test/Makefile.am: Moved CERT
files to where they are used, avoids conflict between two make files trying
to install the same CERTs SSL/*.pem, Move: SSL/*.pem ->
mysql-test/std_data/
---
SSL/Makefile.am | 4 +---
mysql-test/Makefile.am | 18 +-----------------
{SSL => mysql-test/std_data}/cacert.pem | 0
{SSL => mysql-test/std_data}/client-cert.pem | 0
{SSL => mysql-test/std_data}/client-key.pem | 0
{SSL => mysql-test/std_data}/server-cert.pem | 0
{SSL => mysql-test/std_data}/server-key.pem | 0
7 files changed, 2 insertions(+), 20 deletions(-)
rename {SSL => mysql-test/std_data}/cacert.pem (100%)
rename {SSL => mysql-test/std_data}/client-cert.pem (100%)
rename {SSL => mysql-test/std_data}/client-key.pem (100%)
rename {SSL => mysql-test/std_data}/server-cert.pem (100%)
rename {SSL => mysql-test/std_data}/server-key.pem (100%)
diff --git a/SSL/Makefile.am b/SSL/Makefile.am
index 5fc44d3a247..30a6fc3c995 100644
--- a/SSL/Makefile.am
+++ b/SSL/Makefile.am
@@ -15,9 +15,7 @@
## Process this file with automake to create Makefile.in
-EXTRA_DIST= NOTES cacert.pem client-cert.pem client-key.pem \
- run-client run-server server-cert.pem \
- server-key.pem
+EXTRA_DIST= NOTES run-client run-server
# Don't update the files from bitkeeper
%::SCCS/s.%
diff --git a/mysql-test/Makefile.am b/mysql-test/Makefile.am
index 1920a68b21b..439b13af779 100644
--- a/mysql-test/Makefile.am
+++ b/mysql-test/Makefile.am
@@ -37,12 +37,7 @@ EXTRA_DIST = $(EXTRA_SCRIPTS) suite
GENSCRIPTS = mysql-test-run-shell mysql-test-run install_test_db mtr
PRESCRIPTS = mysql-test-run.pl mysql-stress-test.pl
test_SCRIPTS = $(GENSCRIPTS) $(PRESCRIPTS)
-test_DATA = std_data/client-key.pem \
- std_data/client-cert.pem \
- std_data/cacert.pem \
- std_data/server-cert.pem \
- std_data/server-key.pem
-CLEANFILES = $(GENSCRIPTS) $(test_DATA)
+CLEANFILES = $(GENSCRIPTS)
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I..
@@ -111,17 +106,6 @@ install-data-local:
uninstall-local:
@RM@ -f -r $(DESTDIR)$(testdir)
-std_data/client-key.pem: $(top_srcdir)/SSL/$(@F)
- @RM@ -f $@; @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/client-cert.pem: $(top_srcdir)/SSL/$(@F)
- @RM@ -f $@; @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/cacert.pem: $(top_srcdir)/SSL/$(@F)
- @RM@ -f $@; @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/server-cert.pem: $(top_srcdir)/SSL/$(@F)
- @RM@ -f $@; @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/server-key.pem: $(top_srcdir)/SSL/$(@F)
- @RM@ -f $@; @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-
# mtr - a shortcut for executing mysql-test-run.pl
mtr:
$(RM) -f mtr
diff --git a/SSL/cacert.pem b/mysql-test/std_data/cacert.pem
similarity index 100%
rename from SSL/cacert.pem
rename to mysql-test/std_data/cacert.pem
diff --git a/SSL/client-cert.pem b/mysql-test/std_data/client-cert.pem
similarity index 100%
rename from SSL/client-cert.pem
rename to mysql-test/std_data/client-cert.pem
diff --git a/SSL/client-key.pem b/mysql-test/std_data/client-key.pem
similarity index 100%
rename from SSL/client-key.pem
rename to mysql-test/std_data/client-key.pem
diff --git a/SSL/server-cert.pem b/mysql-test/std_data/server-cert.pem
similarity index 100%
rename from SSL/server-cert.pem
rename to mysql-test/std_data/server-cert.pem
diff --git a/SSL/server-key.pem b/mysql-test/std_data/server-key.pem
similarity index 100%
rename from SSL/server-key.pem
rename to mysql-test/std_data/server-key.pem
From 667f2a35de446a92db3baa73e302b71c5db6759c Mon Sep 17 00:00:00 2001
From: "iggy@alf.(none)" <>
Date: Fri, 27 Jul 2007 11:54:54 -0400
Subject: [PATCH 21/29] Bug#30103 CMake build solution does not remove
auto-generated resources - Add CMake rule to remove files.
---
sql/CMakeLists.txt | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
index 0cbeb97184f..b0553f622f8 100755
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -138,6 +138,10 @@ ADD_CUSTOM_COMMAND(
)
ADD_DEPENDENCIES(mysqld${MYSQLD_EXE_SUFFIX} gen_lex_hash)
+# Remove the auto-generated files as part of 'Clean Solution'
+SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
+ "lex_hash.h;message.rc;message.h;sql_yacc.h;sql_yacc.cc")
+
ADD_LIBRARY(udf_example MODULE udf_example.c udf_example.def)
ADD_DEPENDENCIES(udf_example strings)
TARGET_LINK_LIBRARIES(udf_example wsock32)
From 64c5f996d18eb5f990361554299702a27adcb4e6 Mon Sep 17 00:00:00 2001
From: "thek@adventure.(none)" <>
Date: Sun, 29 Jul 2007 14:05:03 +0200
Subject: [PATCH 22/29] Clean up patch - Removed unused variable.
---
sql/sql_lex.cc | 2 --
1 file changed, 2 deletions(-)
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 106dcf88a84..a62d8b383a5 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -2059,8 +2059,6 @@ void st_select_lex_unit::set_limit(SELECT_LEX *sl)
void st_lex::set_trg_event_type_for_tables()
{
- enum trg_event_type trg_event;
-
uint8 new_trg_event_map= 0;
/*
From 80b48aea438babd21f8db508f610630cbd35075e Mon Sep 17 00:00:00 2001
From: "kostja@bodhi.(none)" <>
Date: Mon, 30 Jul 2007 14:22:29 +0400
Subject: [PATCH 23/29] Fix a compilation warning.
---
sql/handler.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/sql/handler.h b/sql/handler.h
index cd9f9a91008..2caf9b20945 100644
--- a/sql/handler.h
+++ b/sql/handler.h
@@ -624,7 +624,6 @@ public:
int ha_external_lock(THD *thd, int lock_type)
{
- int rc;
DBUG_ENTER("ha_external_lock");
locked= lock_type != F_UNLCK;
DBUG_RETURN(external_lock(thd, lock_type));
From e99df6fd02fff7a06d7b5ed02b2a58378d88d27e Mon Sep 17 00:00:00 2001
From: "kent@mysql.com/kent-amd64.(none)" <>
Date: Mon, 30 Jul 2007 20:40:49 +0200
Subject: [PATCH 24/29] my_pthread.c: Backport of correction for Mac OS X
build problem, global variable not initiated is "common" and can't be used
in shared libraries, unless special flags are used (bug#26218)
---
mysys/my_pthread.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mysys/my_pthread.c b/mysys/my_pthread.c
index 14ba6aabf0e..50c0a82d2d8 100644
--- a/mysys/my_pthread.c
+++ b/mysys/my_pthread.c
@@ -30,7 +30,7 @@
#define SCHED_POLICY SCHED_OTHER
#endif
-uint thd_lib_detected;
+uint thd_lib_detected= 0;
#ifndef my_pthread_setprio
void my_pthread_setprio(pthread_t thread_id,int prior)
From a9d2569cba4ff0e9c419d26d4e2005337e047984 Mon Sep 17 00:00:00 2001
From: "kent@mysql.com/kent-amd64.(none)" <>
Date: Mon, 30 Jul 2007 21:09:45 +0200
Subject: [PATCH 25/29] Generate "config.h" directly into the "include"
directory, later copied to "my_config.h". Not to pollute the top directory,
and to get more control over what is included. Made the include path for
"libedit" pick up its own "config.h" first.
---
cmd-line-utils/libedit/Makefile.am | 4 ++--
config/ac-macros/misc.m4 | 1 -
configure.in | 2 +-
include/Makefile.am | 7 +++++--
scripts/make_binary_distribution.sh | 2 +-
5 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/cmd-line-utils/libedit/Makefile.am b/cmd-line-utils/libedit/Makefile.am
index ae6755f1c5c..b7611193aea 100644
--- a/cmd-line-utils/libedit/Makefile.am
+++ b/cmd-line-utils/libedit/Makefile.am
@@ -5,8 +5,8 @@
ASRC = $(srcdir)/vi.c $(srcdir)/emacs.c $(srcdir)/common.c
AHDR = vi.h emacs.h common.h
-INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
- -I$(srcdir)/../.. -I..
+# Make sure to include stuff from this directory first, to get right "config.h"
+INCLUDES = -I. -I$(top_builddir)/include -I$(top_srcdir)/include
noinst_LIBRARIES = libedit.a
diff --git a/config/ac-macros/misc.m4 b/config/ac-macros/misc.m4
index 09081fb3eac..60c0469e449 100644
--- a/config/ac-macros/misc.m4
+++ b/config/ac-macros/misc.m4
@@ -763,7 +763,6 @@ AC_SUBST(CXX_VERSION)
])
AC_DEFUN([MYSQL_PROG_AR], [
-AC_REQUIRE([MYSQL_CHECK_CXX_VERSION])
case $CXX_VERSION in
MIPSpro*)
AR=$CXX
diff --git a/configure.in b/configure.in
index 843837b9348..3db6d0bfb8d 100644
--- a/configure.in
+++ b/configure.in
@@ -8,7 +8,7 @@ AC_CANONICAL_SYSTEM
# The Docs Makefile.am parses this line!
# remember to also change ndb version below and update version.c in ndb
AM_INIT_AUTOMAKE(mysql, 5.0.48)
-AM_CONFIG_HEADER(config.h)
+AM_CONFIG_HEADER([include/config.h:config.h.in])
PROTOCOL_VERSION=10
DOT_FRM_VERSION=6
diff --git a/include/Makefile.am b/include/Makefile.am
index 2cd72052a15..c856b6398fe 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -49,8 +49,11 @@ link_sources:
@readline_h_ln_cmd@
@yassl_h_ln_cmd@
-my_config.h: ../config.h
- $(CP) ../config.h my_config.h
+# We want both "my_config.h" and "config.h" that are identical, as
+# MySQL sources assumes the name "my_config.h", and 3rd party sources
+# assumes the name "config.h".
+my_config.h: config.h
+ $(CP) config.h my_config.h
# These files should not be included in distributions since they are
# generated by configure from the .h.in files
diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh
index dab1bbec956..a87bb03526d 100644
--- a/scripts/make_binary_distribution.sh
+++ b/scripts/make_binary_distribution.sh
@@ -257,7 +257,7 @@ if [ $BASE_SYSTEM = "netware" ] ; then
rm -f $BASE/lib/*.la
fi
-copyfileto $BASE/include config.h include/*
+copyfileto $BASE/include include/*
rm -f $BASE/include/Makefile* $BASE/include/*.in $BASE/include/config-win.h
if [ $BASE_SYSTEM != "netware" ] ; then
From 8dd4751be9acbb7dcfb19a5346f21f6e70ebf53f Mon Sep 17 00:00:00 2001
From: "tnurnberg@sin.intern.azundris.com" <>
Date: Wed, 1 Aug 2007 04:56:58 +0200
Subject: [PATCH 26/29] Bug #10776: Failure to compile ndb ReadNodesConf.cpp on
AIX 5.2
mysqld hasn't been built on AIX with ndb-everything in quite a while.
this allowed a variety of changes to be added that broke the AIX build
for both the GNU and IBM compilers (but the IBM suite in particular).
Changeset lets build to complete on AIX 5.2 for users of the GNU and
the IBM suite both. Tudo bem?
---
config/ac-macros/large_file.m4 | 11 +++--------
configure.in | 6 ++++++
include/mysql.h | 4 ++++
ndb/src/common/util/File.cpp | 4 ++--
ndb/src/mgmclient/Makefile.am | 1 +
ndb/src/mgmsrv/Makefile.am | 2 +-
ndb/test/ndbapi/benchronja.cpp | 19 +++++++++++++------
ndb/test/ndbapi/flexAsynch.cpp | 19 +++++++++++++------
ndb/test/ndbapi/flexHammer.cpp | 15 +++++++++++----
ndb/test/ndbapi/flexScan.cpp | 11 +++++++++--
ndb/test/ndbapi/flexTT.cpp | 19 +++++++++++++------
ndb/test/ndbapi/flexTimedAsynch.cpp | 23 +++++++++++++++--------
ndb/test/ndbapi/initronja.cpp | 9 ++++++++-
ndb/test/ndbapi/testOperations.cpp | 5 -----
ndb/test/ndbapi/testScanFilter.cpp | 12 ++++++++++--
ndb/test/odbc/SQL99_test/SQL99_test.cpp | 13 ++++++++++---
16 files changed, 119 insertions(+), 54 deletions(-)
diff --git a/config/ac-macros/large_file.m4 b/config/ac-macros/large_file.m4
index 00c2fdf614e..2639cec5fb7 100644
--- a/config/ac-macros/large_file.m4
+++ b/config/ac-macros/large_file.m4
@@ -127,14 +127,9 @@ AC_DEFUN([MYSQL_SYS_LARGEFILE],
hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
ac_cv_sys_largefile_source=1 ;;
esac])
- AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES,
- ac_cv_sys_large_files,
- [Large files support on AIX-style hosts.],
- [case "$host_os" in
- # AIX 4.2 and later
- aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*)
- ac_cv_sys_large_files=1 ;;
- esac])
+
+ # AIX 4.2 and later -- do nothing, include standards.h instead.
+ # this goes for both GNU and IBM C and C++ compilers.
fi
])
diff --git a/configure.in b/configure.in
index 1da39ac1aa3..a928bab236f 100644
--- a/configure.in
+++ b/configure.in
@@ -2890,6 +2890,12 @@ then
ndb_opt_subdirs="$ndb_opt_subdirs docs"
ndb_bin_am_ldflags=""
fi
+# building dynamic breaks on AIX. (If you want to try it and get unresolved
+# __vec__delete2 and some such, try linking against libhC.)
+case "$host_os" in
+ aix3.* | aix4.0.* | aix4.1.*) ;;
+ *) ndb_bin_am_ldflags="-static";;
+esac
AC_SUBST([ndb_bin_am_ldflags])
AC_SUBST([ndb_opt_subdirs])
diff --git a/include/mysql.h b/include/mysql.h
index a153d0b51db..b3e0dc45496 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -27,6 +27,10 @@
#ifndef _mysql_h
#define _mysql_h
+#ifdef _AIX /* large-file support will break without this */
+#include
+#endif
+
#ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */
#undef WIN
#undef _WIN
diff --git a/ndb/src/common/util/File.cpp b/ndb/src/common/util/File.cpp
index a75fa5ae463..fe0fdfd1c91 100644
--- a/ndb/src/common/util/File.cpp
+++ b/ndb/src/common/util/File.cpp
@@ -50,7 +50,7 @@ File_class::size(FILE* f)
MY_STAT s;
// Note that my_fstat behaves *differently* than my_stat. ARGGGHH!
- if(my_fstat(::fileno(f), &s, MYF(0)))
+ if(my_fstat(fileno(f), &s, MYF(0)))
return 0;
return s.st_size;
@@ -196,7 +196,7 @@ File_class::flush() const
{
#if defined NDB_OSE || defined NDB_SOFTOSE
::fflush(m_file);
- return ::fsync(::fileno(m_file));
+ return ::fsync(fileno(m_file));
#else
return ::fflush(m_file);;
#endif
diff --git a/ndb/src/mgmclient/Makefile.am b/ndb/src/mgmclient/Makefile.am
index 99540160341..e1287532a07 100644
--- a/ndb/src/mgmclient/Makefile.am
+++ b/ndb/src/mgmclient/Makefile.am
@@ -36,6 +36,7 @@ INCLUDES += -I$(top_srcdir)/ndb/include/mgmapi \
LDADD_LOC = $(noinst_LTLIBRARIES) \
../common/portlib/libportlib.la \
@readline_link@ \
+ $(top_builddir)/ndb/src/libndbclient.la \
$(top_builddir)/dbug/libdbug.a \
$(top_builddir)/mysys/libmysys.a \
$(top_builddir)/strings/libmystrings.a \
diff --git a/ndb/src/mgmsrv/Makefile.am b/ndb/src/mgmsrv/Makefile.am
index 88622c08e53..3d1845957e6 100644
--- a/ndb/src/mgmsrv/Makefile.am
+++ b/ndb/src/mgmsrv/Makefile.am
@@ -38,7 +38,7 @@ INCLUDES_LOC = -I$(top_srcdir)/ndb/src/ndbapi \
-I$(top_srcdir)/ndb/src/common/mgmcommon \
-I$(top_srcdir)/ndb/src/mgmclient
-LDADD_LOC = $(top_builddir)/ndb/src/mgmclient/CommandInterpreter.o \
+LDADD_LOC = $(top_builddir)/ndb/src/mgmclient/CommandInterpreter.lo \
$(top_builddir)/ndb/src/libndbclient.la \
$(top_builddir)/dbug/libdbug.a \
$(top_builddir)/mysys/libmysys.a \
diff --git a/ndb/test/ndbapi/benchronja.cpp b/ndb/test/ndbapi/benchronja.cpp
index 4973e6e2487..73ee324a888 100644
--- a/ndb/test/ndbapi/benchronja.cpp
+++ b/ndb/test/ndbapi/benchronja.cpp
@@ -41,7 +41,14 @@
#define MAXSTRLEN 16
#define MAXATTR 64
#define MAXTABLES 64
-#define MAXTHREADS 256
+#define NDB_MAXTHREADS 256
+/*
+ NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
+ #define from on AIX (IBM compiler). We explicitly
+ #undef it here lest someone use it by habit and get really funny
+ results. K&R says we may #undef non-existent symbols, so let's go.
+*/
+#undef MAXTHREADS
#define MAXATTRSIZE 8000
#define START_TIMER NdbTimer timer; timer.doStart();
#define STOP_TIMER timer.doStop();
@@ -56,18 +63,18 @@ struct ThreadNdb
Ndb* NdbRef;
};
-static NdbThread* threadLife[MAXTHREADS];
+static NdbThread* threadLife[NDB_MAXTHREADS];
static unsigned int tNoOfThreads;
static unsigned int tNoOfOpsPerExecute;
static unsigned int tNoOfRecords;
static unsigned int tNoOfOperations;
-static int ThreadReady[MAXTHREADS];
-static int ThreadStart[MAXTHREADS];
+static int ThreadReady[NDB_MAXTHREADS];
+static int ThreadStart[NDB_MAXTHREADS];
NDB_COMMAND(benchronja, "benchronja", "benchronja", "benchronja", 65535){
ndb_init();
- ThreadNdb tabThread[MAXTHREADS];
+ ThreadNdb tabThread[NDB_MAXTHREADS];
int i = 0 ;
int cont = 0 ;
Ndb* pMyNdb = NULL ; //( "TEST_DB" );
@@ -84,7 +91,7 @@ NDB_COMMAND(benchronja, "benchronja", "benchronja", "benchronja", 65535){
{
if (strcmp(argv[i], "-t") == 0){
tNoOfThreads = atoi(argv[i+1]);
- if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS)) goto error_input;
+ if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS)) goto error_input;
}else if (strcmp(argv[i], "-o") == 0){
tNoOfOperations = atoi(argv[i+1]);
if (tNoOfOperations < 1) goto error_input;
diff --git a/ndb/test/ndbapi/flexAsynch.cpp b/ndb/test/ndbapi/flexAsynch.cpp
index 20a157fc2f3..1f52315482f 100644
--- a/ndb/test/ndbapi/flexAsynch.cpp
+++ b/ndb/test/ndbapi/flexAsynch.cpp
@@ -35,7 +35,14 @@
#define MAXSTRLEN 16
#define MAXATTR 64
#define MAXTABLES 64
-#define MAXTHREADS 128
+#define NDB_MAXTHREADS 128
+/*
+ NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
+ #define from on AIX (IBM compiler). We explicitly
+ #undef it here lest someone use it by habit and get really funny
+ results. K&R says we may #undef non-existent symbols, so let's go.
+*/
+#undef MAXTHREADS
#define MAXPAR 1024
#define MAXATTRSIZE 1000
#define PKSIZE 2
@@ -76,10 +83,10 @@ struct ThreadNdb
int ThreadNo;
};
-static NdbThread* threadLife[MAXTHREADS];
+static NdbThread* threadLife[NDB_MAXTHREADS];
static int tNodeId;
-static int ThreadReady[MAXTHREADS];
-static StartType ThreadStart[MAXTHREADS];
+static int ThreadReady[NDB_MAXTHREADS];
+static StartType ThreadStart[NDB_MAXTHREADS];
static char tableName[MAXTABLES][MAXSTRLEN+1];
static char attrName[MAXATTR][MAXSTRLEN+1];
@@ -160,7 +167,7 @@ NDB_COMMAND(flexAsynch, "flexAsynch", "flexAsynch", "flexAsynch", 65535)
return NDBT_ProgramExit(NDBT_WRONGARGS);
}
- pThreadData = new ThreadNdb[MAXTHREADS];
+ pThreadData = new ThreadNdb[NDB_MAXTHREADS];
ndbout << endl << "FLEXASYNCH - Starting normal mode" << endl;
ndbout << "Perform benchmark of insert, update and delete transactions";
@@ -844,7 +851,7 @@ readArguments(int argc, const char** argv){
while (argc > 1){
if (strcmp(argv[i], "-t") == 0){
tNoOfThreads = atoi(argv[i+1]);
- if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS)){
+ if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS)){
ndbout_c("Invalid no of threads");
return -1;
}
diff --git a/ndb/test/ndbapi/flexHammer.cpp b/ndb/test/ndbapi/flexHammer.cpp
index 9abac905f5a..3847bc38b35 100644
--- a/ndb/test/ndbapi/flexHammer.cpp
+++ b/ndb/test/ndbapi/flexHammer.cpp
@@ -69,7 +69,14 @@ ErrorData * flexHammerErrorData;
#define MAXSTRLEN 16
#define MAXATTR 64
#define MAXTABLES 64
-#define MAXTHREADS 256
+#define NDB_MAXTHREADS 256
+/*
+ NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
+ #define from on AIX (IBM compiler). We explicitly
+ #undef it here lest someone use it by habit and get really funny
+ results. K&R says we may #undef non-existent symbols, so let's go.
+*/
+#undef MAXTHREADS
#define MAXATTRSIZE 100
// Max number of retries if something fails
#define MaxNoOfAttemptsC 10
@@ -122,8 +129,8 @@ static int tAttributeSize;
static int tNoOfOperations;
static int tNoOfRecords;
static int tNoOfLoops;
-static ReadyType ThreadReady[MAXTHREADS];
-static StartType ThreadStart[MAXTHREADS];
+static ReadyType ThreadReady[NDB_MAXTHREADS];
+static StartType ThreadStart[NDB_MAXTHREADS];
static char tableName[MAXTABLES][MAXSTRLEN];
static char attrName[MAXATTR][MAXSTRLEN];
static int theSimpleFlag = 0;
@@ -643,7 +650,7 @@ readArguments (int argc, const char** argv)
while (argc > 1) {
if (strcmp(argv[i], "-t") == 0) {
tNoOfThreads = atoi(argv[i+1]);
- if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS))
+ if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS))
return(1);
}
else if (strcmp(argv[i], "-o") == 0) {
diff --git a/ndb/test/ndbapi/flexScan.cpp b/ndb/test/ndbapi/flexScan.cpp
index cbea90f44f4..4e3def7fb91 100644
--- a/ndb/test/ndbapi/flexScan.cpp
+++ b/ndb/test/ndbapi/flexScan.cpp
@@ -68,7 +68,14 @@
#define MAXSTRLEN 16
#define MAXATTR 64
#define MAXTABLES 64
-#define MAXTHREADS 256
+#define NDB_MAXTHREADS 256
+/*
+ NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
+ #define from on AIX (IBM compiler). We explicitly
+ #undef it here lest someone use it by habit and get really funny
+ results. K&R says we may #undef non-existent symbols, so let's go.
+*/
+#undef MAXTHREADS
#define MAXATTRSIZE 64
enum StartType {
@@ -860,7 +867,7 @@ static int readArguments(int argc, const char** argv)
if (strcmp(argv[i], "-t") == 0) {
if (argv[i + 1] != NULL) {
tNoOfThreads = atoi(argv[i + 1]);
- if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS)) {
+ if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS)) {
retValue = -1;
} // if
} // if
diff --git a/ndb/test/ndbapi/flexTT.cpp b/ndb/test/ndbapi/flexTT.cpp
index 71d5b6c096e..4373102f77e 100644
--- a/ndb/test/ndbapi/flexTT.cpp
+++ b/ndb/test/ndbapi/flexTT.cpp
@@ -35,7 +35,14 @@
#define MAXSTRLEN 16
#define MAXATTR 64
#define MAXTABLES 64
-#define MAXTHREADS 128
+#define NDB_MAXTHREADS 128
+/*
+ NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
+ #define from on AIX (IBM compiler). We explicitly
+ #undef it here lest someone use it by habit and get really funny
+ results. K&R says we may #undef non-existent symbols, so let's go.
+*/
+#undef MAXTHREADS
#define MAXPAR 1024
#define MAXATTRSIZE 1000
#define PKSIZE 1
@@ -101,10 +108,10 @@ static void input_error();
ErrorData * flexTTErrorData;
-static NdbThread* threadLife[MAXTHREADS];
+static NdbThread* threadLife[NDB_MAXTHREADS];
static int tNodeId;
-static int ThreadReady[MAXTHREADS];
-static StartType ThreadStart[MAXTHREADS];
+static int ThreadReady[NDB_MAXTHREADS];
+static StartType ThreadStart[NDB_MAXTHREADS];
static char tableName[1][MAXSTRLEN+1];
static char attrName[5][MAXSTRLEN+1];
@@ -184,7 +191,7 @@ NDB_COMMAND(flexTT, "flexTT", "flexTT", "flexTT", 65535)
return NDBT_ProgramExit(NDBT_WRONGARGS);
}
- pThreadData = new ThreadNdb[MAXTHREADS];
+ pThreadData = new ThreadNdb[NDB_MAXTHREADS];
ndbout << endl << "FLEXTT - Starting normal mode" << endl;
ndbout << "Perform TimesTen benchmark" << endl;
@@ -798,7 +805,7 @@ readArguments(int argc, const char** argv){
while (argc > 1){
if (strcmp(argv[i], "-t") == 0){
tNoOfThreads = atoi(argv[i+1]);
- if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS)){
+ if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS)){
ndbout_c("Invalid no of threads");
return -1;
}
diff --git a/ndb/test/ndbapi/flexTimedAsynch.cpp b/ndb/test/ndbapi/flexTimedAsynch.cpp
index cc44ab8b237..b6301e59df2 100644
--- a/ndb/test/ndbapi/flexTimedAsynch.cpp
+++ b/ndb/test/ndbapi/flexTimedAsynch.cpp
@@ -57,7 +57,14 @@
#define MAXSTRLEN 16
#define MAXATTR 64
#define MAXTABLES 64
-#define MAXTHREADS 256
+#define NDB_MAXTHREADS 256
+/*
+ NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
+ #define from on AIX (IBM compiler). We explicitly
+ #undef it here lest someone use it by habit and get really funny
+ results. K&R says we may #undef non-existent symbols, so let's go.
+*/
+#undef MAXTHREADS
#define MAXATTRSIZE 1000
#define PKSIZE 1
@@ -95,10 +102,10 @@ static int failed = 0 ; // lame global variable that keeps track of failed trans
// incremented in executeCallback() and reset in main()
/************************************************************* < epaulsa */
-static NdbThread* threadLife[MAXTHREADS];
+static NdbThread* threadLife[NDB_MAXTHREADS];
static int tNodeId;
-static int ThreadReady[MAXTHREADS];
-static StartType ThreadStart[MAXTHREADS];
+static int ThreadReady[NDB_MAXTHREADS];
+static StartType ThreadStart[NDB_MAXTHREADS];
static char tableName[MAXTABLES][MAXSTRLEN+1];
static char attrName[MAXATTR][MAXSTRLEN+1];
static int *getAttrValueTable;
@@ -174,7 +181,7 @@ void deleteAttributeSpace(){
NDB_COMMAND(flexTimedAsynch, "flexTimedAsynch", "flexTimedAsynch [-tpoilcas]", "flexTimedAsynch", 65535)
{
ndb_init();
- ThreadNdb tabThread[MAXTHREADS];
+ ThreadNdb tabThread[NDB_MAXTHREADS];
int tLoops=0;
int returnValue;
//NdbOut flexTimedAsynchNdbOut;
@@ -615,8 +622,8 @@ void readArguments(int argc, const char** argv)
if (strcmp(argv[i], "-t") == 0)
{
tNoOfThreads = atoi(argv[i+1]);
- // if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS))
- if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS))
+ // if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS))
+ if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS))
exit(-1);
}
else if (strcmp(argv[i], "-i") == 0)
@@ -628,7 +635,7 @@ void readArguments(int argc, const char** argv)
else if (strcmp(argv[i], "-p") == 0)
{
tNoOfTransInBatch = atoi(argv[i+1]);
- //if ((tNoOfTransInBatch < 1) || (tNoOfTransInBatch > MAXTHREADS))
+ //if ((tNoOfTransInBatch < 1) || (tNoOfTransInBatch > NDB_MAXTHREADS))
if ((tNoOfTransInBatch < 1) || (tNoOfTransInBatch > 10000))
exit(-1);
}
diff --git a/ndb/test/ndbapi/initronja.cpp b/ndb/test/ndbapi/initronja.cpp
index 63bbc374c62..f48b1c86da3 100644
--- a/ndb/test/ndbapi/initronja.cpp
+++ b/ndb/test/ndbapi/initronja.cpp
@@ -29,7 +29,14 @@
#define MAXSTRLEN 16
#define MAXATTR 64
#define MAXTABLES 64
-#define MAXTHREADS 256
+#define NDB_MAXTHREADS 256
+/*
+ NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
+ #define from on AIX (IBM compiler). We explicitly
+ #undef it here lest someone use it by habit and get really funny
+ results. K&R says we may #undef non-existent symbols, so let's go.
+*/
+#undef MAXTHREADS
#define MAXATTRSIZE 8000
static unsigned int tNoOfRecords;
diff --git a/ndb/test/ndbapi/testOperations.cpp b/ndb/test/ndbapi/testOperations.cpp
index 1f610cade4a..21151ab5c7f 100644
--- a/ndb/test/ndbapi/testOperations.cpp
+++ b/ndb/test/ndbapi/testOperations.cpp
@@ -97,11 +97,6 @@ OperationTestCase matrix[] = {
result = NDBT_FAILED; \
break; }
-#define C3(b) if (!(b)) { \
- g_err << "ERR: "<< step->getName() \
- << " failed on line " << __LINE__ << endl; \
- abort(); return NDBT_FAILED; }
-
#define C3(b) if (!(b)) { \
g_err << "ERR: failed on line " << __LINE__ << endl; \
return NDBT_FAILED; }
diff --git a/ndb/test/ndbapi/testScanFilter.cpp b/ndb/test/ndbapi/testScanFilter.cpp
index 5098d83745b..81aa6b82fa0 100644
--- a/ndb/test/ndbapi/testScanFilter.cpp
+++ b/ndb/test/ndbapi/testScanFilter.cpp
@@ -49,7 +49,15 @@ const char COL_LEN = 7;
* there are six columns, 'i', 'j', 'k', 'l', 'm', 'n', and each on is equal to 1 or 1,
* Since each tuple should be unique in this case, then TUPLE_NUM = 2 power 6 = 64
*/
-const int TUPLE_NUM = (int)pow(2, COL_LEN-1);
+#ifdef _AIX
+/*
+ IBM xlC_r breaks on the initialization with pow():
+ "The expression must be an integral constant expression."
+*/
+const int TUPLE_NUM = 64;
+#else
+const int TUPLE_NUM = (int)pow(2, COL_LEN-1);
+#endif
/*
* the recursive level of random scan filter, can
@@ -479,7 +487,7 @@ int get_column_id(char ch)
*/
bool check_col_equal_one(int tuple_no, int col_id)
{
- int i = (int)pow(2, 6 - col_id);
+ int i = (int)pow((double)2, (double)(6 - col_id));
int j = tuple_no / i;
if(j % 2)
return true;
diff --git a/ndb/test/odbc/SQL99_test/SQL99_test.cpp b/ndb/test/odbc/SQL99_test/SQL99_test.cpp
index 039a77f4d53..fb77220773d 100644
--- a/ndb/test/odbc/SQL99_test/SQL99_test.cpp
+++ b/ndb/test/odbc/SQL99_test/SQL99_test.cpp
@@ -27,7 +27,14 @@ using namespace std; //
#define MAXROW 64
#define DEFROW 8
-#define MAXTHREADS 24
+/*
+ NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
+ #define from on AIX (IBM compiler). We explicitly
+ #undef it here lest someone use it by habit and get really funny
+ results. K&R says we may #undef non-existent symbols, so let's go.
+*/
+#undef MAXTHREADS
+#define NDB_MAXTHREADS 24
#define DEFTHREADS 2
#define MAXTABLES 16
@@ -83,7 +90,7 @@ int main(int argc, char* argv[]){
char* szTableNames = (char*)malloc(sizeof(char)*nNoOfTables*MAX_TABLE_NAME) ;
memset(szTableNames, 0, sizeof(char)*nNoOfTables*MAX_TABLE_NAME) ;
- UintPtr pThreadHandles[MAXTHREADS] = { NULL } ;
+ UintPtr pThreadHandles[NDB_MAXTHREADS] = { NULL } ;
AssignTableNames(szTableNames, nNoOfTables) ;
@@ -313,7 +320,7 @@ void ParseArguments(int argc, const char** argv){
if (strcmp(argv[i], "-t") == 0)
{
nNoOfThreads = atoi(argv[i+1]);
- if ((nNoOfThreads < 1) || (nNoOfThreads > MAXTHREADS))
+ if ((nNoOfThreads < 1) || (nNoOfThreads > NDB_MAXTHREADS))
nNoOfThreads = DEFTHREADS ;
}
else if (strcmp(argv[i], "-c") == 0)
From d0dc51b4f7e4ca256b49ac9d021b5233f086d98d Mon Sep 17 00:00:00 2001
From: "kostja@bodhi.(none)" <>
Date: Wed, 1 Aug 2007 12:28:08 +0400
Subject: [PATCH 27/29] Fix an unstable test. It was reliant on the current
time.
---
mysql-test/r/func_time.result | 8 ++++----
mysql-test/t/func_time.test | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result
index 56ea72a8ee3..f92ecac329a 100644
--- a/mysql-test/r/func_time.result
+++ b/mysql-test/r/func_time.result
@@ -840,11 +840,11 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1003 select period_add(_latin1'9602',-(12)) AS `period_add("9602",-12)`,period_diff(199505,_latin1'9404') AS `period_diff(199505,"9404")`,from_days(to_days(_latin1'960101')) AS `from_days(to_days("960101"))`,dayofmonth(_latin1'1997-01-02') AS `dayofmonth("1997-01-02")`,month(_latin1'1997-01-02') AS `month("1997-01-02")`,monthname(_latin1'1972-03-04') AS `monthname("1972-03-04")`,dayofyear(_latin1'0000-00-00') AS `dayofyear("0000-00-00")`,hour(_latin1'1997-03-03 23:03:22') AS `HOUR("1997-03-03 23:03:22")`,minute(_latin1'23:03:22') AS `MINUTE("23:03:22")`,second(230322) AS `SECOND(230322)`,quarter(980303) AS `QUARTER(980303)`,week(_latin1'1998-03-03',0) AS `WEEK("1998-03-03")`,yearweek(_latin1'2000-01-01',1) AS `yearweek("2000-01-01",1)`,week(19950101,1) AS `week(19950101,1)`,year(_latin1'98-02-03') AS `year("98-02-03")`,(weekday(curdate()) - weekday(now())) AS `weekday(curdate())-weekday(now())`,dayname(_latin1'1962-03-03') AS `dayname("1962-03-03")`,unix_timestamp() AS `unix_timestamp()`,sec_to_time((time_to_sec(_latin1'0:30:47') / 6.21)) AS `sec_to_time(time_to_sec("0:30:47")/6.21)`,curtime() AS `curtime()`,utc_time() AS `utc_time()`,curdate() AS `curdate()`,utc_date() AS `utc_date()`,utc_timestamp() AS `utc_timestamp()`,date_format(_latin1'1997-01-02 03:04:05',_latin1'%M %W %D %Y %y %m %d %h %i %s %w') AS `date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w")`,from_unixtime(unix_timestamp(_latin1'1994-03-02 10:11:12')) AS `from_unixtime(unix_timestamp("1994-03-02 10:11:12"))`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `"1997-12-31 23:59:59" + INTERVAL 1 SECOND`,(_latin1'1998-01-01 00:00:00' - interval 1 second) AS `"1998-01-01 00:00:00" - INTERVAL 1 SECOND`,(_latin1'1997-12-31' + interval 1 day) AS `INTERVAL 1 DAY + "1997-12-31"`,extract(year from _latin1'1999-01-02 10:11:12') AS `extract(YEAR FROM "1999-01-02 10:11:12")`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND)`
-SET @TMP=NOW();
+SET @TMP='2007-08-01 12:22:49';
CREATE TABLE t1 (d DATETIME);
-INSERT INTO t1 VALUES (NOW());
-INSERT INTO t1 VALUES (NOW());
-INSERT INTO t1 VALUES (NOW());
+INSERT INTO t1 VALUES ('2007-08-01 12:22:59');
+INSERT INTO t1 VALUES ('2007-08-01 12:23:01');
+INSERT INTO t1 VALUES ('2007-08-01 12:23:20');
SELECT count(*) FROM t1 WHERE d>FROM_DAYS(TO_DAYS(@TMP)) AND d<=FROM_DAYS(TO_DAYS(@TMP)+1);
count(*)
3
diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test
index da909dc578f..4f35a681228 100644
--- a/mysql-test/t/func_time.test
+++ b/mysql-test/t/func_time.test
@@ -423,11 +423,11 @@ select strcmp(concat(utc_date(),' ',utc_time()),utc_timestamp())=0;
explain extended select period_add("9602",-12),period_diff(199505,"9404"),from_days(to_days("960101")),dayofmonth("1997-01-02"), month("1997-01-02"), monthname("1972-03-04"),dayofyear("0000-00-00"),HOUR("1997-03-03 23:03:22"),MINUTE("23:03:22"),SECOND(230322),QUARTER(980303),WEEK("1998-03-03"),yearweek("2000-01-01",1),week(19950101,1),year("98-02-03"),weekday(curdate())-weekday(now()),dayname("1962-03-03"),unix_timestamp(),sec_to_time(time_to_sec("0:30:47")/6.21),curtime(),utc_time(),curdate(),utc_date(),utc_timestamp(),date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w"),from_unixtime(unix_timestamp("1994-03-02 10:11:12")),"1997-12-31 23:59:59" + INTERVAL 1 SECOND,"1998-01-01 00:00:00" - INTERVAL 1 SECOND,INTERVAL 1 DAY + "1997-12-31", extract(YEAR FROM "1999-01-02 10:11:12"),date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND);
-SET @TMP=NOW();
+SET @TMP='2007-08-01 12:22:49';
CREATE TABLE t1 (d DATETIME);
-INSERT INTO t1 VALUES (NOW());
-INSERT INTO t1 VALUES (NOW());
-INSERT INTO t1 VALUES (NOW());
+INSERT INTO t1 VALUES ('2007-08-01 12:22:59');
+INSERT INTO t1 VALUES ('2007-08-01 12:23:01');
+INSERT INTO t1 VALUES ('2007-08-01 12:23:20');
SELECT count(*) FROM t1 WHERE d>FROM_DAYS(TO_DAYS(@TMP)) AND d<=FROM_DAYS(TO_DAYS(@TMP)+1);
DROP TABLE t1;
From f5c8c9a81d79587241f41e05112812c4abc8655f Mon Sep 17 00:00:00 2001
From: "jperkin@production.mysql.com" <>
Date: Wed, 1 Aug 2007 11:58:25 +0200
Subject: [PATCH 28/29] Option 6 tries to grant global privileges at the
database level which does not work. Removing these attempted privileges
makes this identical to option 5 so remove it completely. The spirit of the
program appears to be aimed at database privileges, so do not add another
option for granting global privileges as it may be unexpected. Fixes
bug#14618 (same as previous patch, this time applied to -maint tree).
---
scripts/mysql_setpermission.sh | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/scripts/mysql_setpermission.sh b/scripts/mysql_setpermission.sh
index 9699cd28047..1f5509f9955 100644
--- a/scripts/mysql_setpermission.sh
+++ b/scripts/mysql_setpermission.sh
@@ -19,13 +19,14 @@
## 1.3 Applied patch provided by Martin Mokrejs
## (General code cleanup, use the GRANT statement instead of updating
## the privilege tables directly, added option to revoke privileges)
+## 1.4 Remove option 6 which attempted to erroneously grant global privileges
#### TODO
#
# empty ... suggestions ... mail them to me ...
-$version="1.3";
+$version="1.4";
use DBI;
use Getopt::Long;
@@ -103,13 +104,9 @@ sub q1 { # first question ...
print " existing database and host combination (user can do\n";
print " SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,\n";
print " LOCK TABLES,CREATE TEMPORARY TABLES)\n";
- print " 6. Create/append database administrative privileges for an\n";
- print " existing database and host combination (user can do\n";
- print " SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,\n";
- print " CREATE TEMPORARY TABLES,SHOW DATABASES,PROCESS)\n";
- print " 7. Create/append full privileges for an existing database\n";
+ print " 6. Create/append full privileges for an existing database\n";
print " and host combination (user has FULL privilege)\n";
- print " 8. Remove all privileges for for an existing database and\n";
+ print " 7. Remove all privileges for for an existing database and\n";
print " host combination.\n";
print " (user will have all permission fields set to N)\n";
print " 0. exit this program\n";
@@ -117,10 +114,10 @@ sub q1 { # first question ...
while () {
$answer = $_;
chomp($answer);
- if ($answer =~ /^[12345678]$/) {
+ if ($answer =~ /^[1234567]$/) {
if ($answer == 1) {
setpwd();
- } elsif ($answer =~ /^[2345678]$/) {
+ } elsif ($answer =~ /^[234567]$/) {
addall($answer);
} else {
print "Sorry, something went wrong. With such option number you should not get here.\n\n";
@@ -233,7 +230,7 @@ sub addall {
}
}
- if ( ( !$todo ) or not ( $todo =~ m/^[2-8]$/ ) ) {
+ if ( ( !$todo ) or not ( $todo =~ m/^[2-7]$/ ) ) {
print STDERR "Sorry, select option $todo isn't known inside the program .. See ya\n";
quit();
}
@@ -256,12 +253,9 @@ sub addall {
# user privileges: SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES
$sth = $dbh->do("GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES ON $db.* TO $user@\"$host\" IDENTIFIED BY \'$pass\'") || die $dbh->errstr;
} elsif ($todo == 6) {
- # admin privileges: GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES,SHOW DATABASES,PROCESS
- $sth = $dbh->do("GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES,SHOW DATABASES,PROCESS ON $db.* TO $user@\"$host\" IDENTIFIED BY \'$pass\'") || die $dbh->errstr;
- } elsif ($todo == 7) {
# all privileges
$sth = $dbh->do("GRANT ALL ON $db.* TO \'$user\'\@\'$host\' IDENTIFIED BY \'$pass\'") || die $dbh->errstr;
- } elsif ($todo == 8) {
+ } elsif ($todo == 7) {
# all privileges set to N
$sth = $dbh->do("REVOKE ALL ON *.* FROM \'$user\'\@\'$host\'") || die $dbh->errstr;
}
From 7fb417d0ba1c416db1d5a12774cb3f4a6624ba9c Mon Sep 17 00:00:00 2001
From: "ramil/ram@mysql.com/ramil.myoffice.izhnet.ru" <>
Date: Wed, 1 Aug 2007 15:27:03 +0500
Subject: [PATCH 29/29] Fix for bug #29928: INSERT ... VALUES(connection_id(),
...) incorrect restores from mysqlbinlog out
Problem: using "mysqlbinlog | mysql" for recoveries the connection_id()
result may differ from what was used when issuing the statement.
Fix: if there is a connection_id() in a statement, write to binlog
SET pseudo_thread_id= XXX; before it and use the value later on.
---
mysql-test/r/mysqlbinlog.result | 7 +++++++
mysql-test/t/mysqlbinlog.test | 21 +++++++++++++++++++++
sql/item_create.cc | 4 +++-
sql/item_func.cc | 11 +----------
sql/log_event.cc | 11 +++++++----
sql/sql_class.cc | 2 +-
sql/sql_class.h | 3 +++
7 files changed, 43 insertions(+), 16 deletions(-)
diff --git a/mysql-test/r/mysqlbinlog.result b/mysql-test/r/mysqlbinlog.result
index 1ba198dfd75..d16a4c39a11 100644
--- a/mysql-test/r/mysqlbinlog.result
+++ b/mysql-test/r/mysqlbinlog.result
@@ -318,4 +318,11 @@ INSERT INTO t1 VALUES ('0123456789');
flush logs;
DROP TABLE t1;
# Query thread_id=REMOVED exec_time=REMOVED error_code=REMOVED
+flush logs;
+create table t1(a int);
+insert into t1 values(connection_id());
+flush logs;
+drop table t1;
+1
+drop table t1;
End of 5.0 tests
diff --git a/mysql-test/t/mysqlbinlog.test b/mysql-test/t/mysqlbinlog.test
index bd90dcfb930..451eef17108 100644
--- a/mysql-test/t/mysqlbinlog.test
+++ b/mysql-test/t/mysqlbinlog.test
@@ -216,4 +216,25 @@ flush logs;
DROP TABLE t1;
--exec $MYSQL_BINLOG --hexdump --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000011 | grep 'Query' | sed 's/[0-9]\{1,\}/REMOVED/g'
+#
+# Bug #29928: incorrect connection_id() restoring from mysqlbinlog out
+#
+flush logs;
+create table t1(a int);
+insert into t1 values(connection_id());
+let $a= `select a from t1`;
+flush logs;
+--exec $MYSQL_BINLOG $MYSQLTEST_VARDIR/log/master-bin.000013 > $MYSQLTEST_VARDIR/tmp/bug29928.sql
+drop table t1;
+connect (con1, localhost, root, , test);
+connection con1;
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug29928.sql
+--remove_file $MYSQLTEST_VARDIR/tmp/bug29928.sql
+let $b= `select a from t1`;
+disconnect con1;
+connection default;
+let $c= `select $a=$b`;
+--echo $c
+drop table t1;
+
--echo End of 5.0 tests
diff --git a/sql/item_create.cc b/sql/item_create.cc
index 50db1c37371..3713fc9e380 100644
--- a/sql/item_create.cc
+++ b/sql/item_create.cc
@@ -70,7 +70,9 @@ Item *create_func_ceiling(Item* a)
Item *create_func_connection_id(void)
{
- current_thd->lex->safe_to_cache_query= 0;
+ THD *thd= current_thd;
+ thd->lex->safe_to_cache_query= 0;
+ thd->thread_specific_used= TRUE;
return new Item_func_connection_id();
}
diff --git a/sql/item_func.cc b/sql/item_func.cc
index b256ce4624a..cada6019ffd 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -649,16 +649,7 @@ bool Item_func_connection_id::fix_fields(THD *thd, Item **ref)
{
if (Item_int_func::fix_fields(thd, ref))
return TRUE;
-
- /*
- To replicate CONNECTION_ID() properly we should use
- pseudo_thread_id on slave, which contains the value of thread_id
- on master.
- */
- value= ((thd->slave_thread) ?
- thd->variables.pseudo_thread_id :
- thd->thread_id);
-
+ value= thd->variables.pseudo_thread_id;
return FALSE;
}
diff --git a/sql/log_event.cc b/sql/log_event.cc
index c37df31ae00..1ef765f607f 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -1303,8 +1303,9 @@ Query_log_event::Query_log_event(THD* thd_arg, const char* query_arg,
ulong query_length, bool using_trans,
bool suppress_use, THD::killed_state killed_status_arg)
:Log_event(thd_arg,
- ((thd_arg->tmp_table_used ? LOG_EVENT_THREAD_SPECIFIC_F : 0)
- | (suppress_use ? LOG_EVENT_SUPPRESS_USE_F : 0)),
+ ((thd_arg->tmp_table_used || thd_arg->thread_specific_used) ?
+ LOG_EVENT_THREAD_SPECIFIC_F : 0) |
+ (suppress_use ? LOG_EVENT_SUPPRESS_USE_F : 0),
using_trans),
data_buf(0), query(query_arg), catalog(thd_arg->catalog),
db(thd_arg->db), q_len((uint32) query_length),
@@ -2689,8 +2690,10 @@ Load_log_event::Load_log_event(THD *thd_arg, sql_exchange *ex,
List
- &fields_arg,
enum enum_duplicates handle_dup,
bool ignore, bool using_trans)
- :Log_event(thd_arg, !thd_arg->tmp_table_used ?
- 0 : LOG_EVENT_THREAD_SPECIFIC_F, using_trans),
+ :Log_event(thd_arg,
+ (thd_arg->tmp_table_used || thd_arg->thread_specific_used) ?
+ LOG_EVENT_THREAD_SPECIFIC_F : 0,
+ using_trans),
thread_id(thd_arg->thread_id),
slave_proxy_id(thd_arg->variables.pseudo_thread_id),
num_fields(0),fields(0),
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index ee4e1ea149c..c4fc82e55ca 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -197,7 +197,7 @@ THD::THD()
count_cuted_fields= CHECK_FIELD_IGNORE;
killed= NOT_KILLED;
db_length= col_access=0;
- query_error= tmp_table_used= 0;
+ query_error= tmp_table_used= thread_specific_used= 0;
next_insert_id=last_insert_id=0;
hash_clear(&handler_tables_hash);
tmp_table=0;
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 445a3ce437c..49f3e6354b9 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -1457,6 +1457,9 @@ public:
bool in_lock_tables;
bool query_error, bootstrap, cleanup_done;
bool tmp_table_used;
+
+ /** is set if some thread specific value(s) used in a statement. */
+ bool thread_specific_used;
bool charset_is_system_charset, charset_is_collation_connection;
bool charset_is_character_set_filesystem;
bool enable_slow_log; /* enable slow log for current statement */