Bug #30944 error on select or other acces to view with & expr in 5.0.45 but not 5.0.42
Submitted: 11 Sep 2007 6:51 Modified: 7 Oct 2008 23:00
Reporter: alan reider Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: DDL Severity:S2 (Serious)
Version:5.0.44 up to 5.0bk OS:Linux (debian)
Assigned to: Evgeny Potemkin CPU Architecture:Any

[11 Sep 2007 6:51] alan reider
Description:
the following error is returned on any access to a view created using an & expression on version 5.0.45. It could not be reproduced on 5.0.42. Also could not be reproduced replacing & with *.

ERROR 1064 (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 '???) AS `ip24` from `test`.`ip`' at line 1

How to repeat:
create table ip (ip int); 
create view ipview as select ip & 0xffffff00 as ip24 from ip;
select * from ipview;

or show create view ipview;
[11 Sep 2007 6:51] alan reider
updated sev
[11 Sep 2007 7:01] Hartmut Holzgraefe
mysqltest test case

Attachment: bug30944.tgz (application/x-gtar, text), 956 bytes.

[7 Oct 2008 19:49] Konstantin Osipov
I can't repeat this in the latest 5.0.
Please re-verify.

mysql> create table ip (ip int); 
Query OK, 0 rows affected (0.01 sec)

mysql> create view ipview as select ip & 0xffffff00 as ip24 from ip;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from ipview;
Empty set (0.00 sec)

mysql> 
mysql> select version();
+---------------------------+
| version()                 |
+---------------------------+
| 5.0.72-valgrind-max-debug | 
+---------------------------+
1 row in set (0.03 sec)
[7 Oct 2008 23:00] MySQL Verification Team
I couldn't repeat too:

c:\dbs>c:\dbs\5.0\bin\mysql -uroot --port=3500 --prompt="mysql 5.0 > "
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.72-nt-debug-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql 5.0 > use test
Database changed
mysql 5.0 > create table ip (ip int);
Query OK, 0 rows affected (0.16 sec)

mysql 5.0 > create view ipview as select ip & 0xffffff00 as ip24 from ip;
Query OK, 0 rows affected (0.05 sec)

mysql 5.0 > select * from ipview;
Empty set (0.03 sec)

mysql 5.0 > show create view ipview\G
*************************** 1. row ***************************
       View: ipview
Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `ipview` AS select (`ip`.`ip` & 0xfff
fff00) AS `ip24` from `ip`
1 row in set (0.00 sec)

mysql 5.0 >