Bug #2176 Typo in sql_parse.cpp - line 1993 (Windows source)
Submitted: 20 Dec 2003 20:51 Modified: 20 Dec 2003 21:11
Reporter: Adam Clauss Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S2 (Serious)
Version:4.0.17 OS:Windows (Windows (any))
Assigned to: CPU Architecture:Any

[20 Dec 2003 20:51] Adam Clauss
Description:
Was compiling the Windows source for the 4.0.17 release under Visual Studio .Net 2002 (7.0).
During the compilation of the mysqldemb project, I got the following warning:
\mysql-4.0.17\sql\sql_parse.cpp(1993) : warning C4553: '==' : operator has no effect; did you intend '='?

Looking at the code I see:

/* Fix lock for first table */
    if (tables->lock_type == TL_WRITE_DELAYED)
      tables->lock_type == TL_WRITE;

With the final line being the line in question.  This warning is correct - the == operator does nothing here, was the intent for this to do nothing, or is it supposed to be an assignment statement?

How to repeat:
Simply compile to see the warning.

Suggested fix:
/* Fix lock for first table */
    if (tables->lock_type == TL_WRITE_DELAYED)
      tables->lock_type = TL_WRITE;
[20 Dec 2003 21:11] MySQL Verification Team
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the
latest available version, including the bugfix, yourself. More
information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

ChangeSet
  1.1661 03/12/17 18:12:59 monty@mysql.com +1 -0
  Fixed typo.  Affected INSERT DELAYED ... SELECT commands

Fix will come in 4.0.18