Bug #72106 ENABLED_LOCAL_INFILE enabled by default in 5.6
Submitted: 23 Mar 2014 19:00 Modified: 27 Oct 2014 17:43
Reporter: Hartmut Holzgraefe Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.6.16, 5.6.17 OS:Linux (Ubuntu 13.10 x86_64)
Assigned to: Tor Didriksen CPU Architecture:Any
Tags: regression

[23 Mar 2014 19:00] Hartmut Holzgraefe
Description:
The 5.6 manual says that ENABLED_LOCAL_INFILE is disabled by defaul, like in previous versions:

https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html

When running CMake with default settings it ends up being enabled though

I'm not really sure what caused this change as the option is defined as

  OPTION(ENABLED_LOCAL_INFILE "" ON)

in cmake/build_configurations/feature_set.cmake in both 5.5 and 5.6 source?

How to repeat:
tar -xvzf mysql-5.6.16.tar.gz
cd mysql-5.6.16
cmake .
grep ENABLED_LOCAL_INFILE CMakeCache.txt include/my_config.h 

result:

include/my_config.h:#define ENABLED_LOCAL_INFILE 1
CMakeCache.txt:ENABLED_LOCAL_INFILE:BOOL=ON
[...]

5.5.36 result:

include/my_config.h:/* #undef ENABLED_LOCAL_INFILE */
CMakeCache.txt:ENABLED_LOCAL_INFILE:BOOL=OFF
[...]

Suggested fix:
Ensure that the default behavior when not explicitly setting ENABLED_LOCAL_INFILE upon invoking cmake results in the documented behavior
[23 Mar 2014 19:01] Hartmut Holzgraefe
Added OS details
[24 Mar 2014 8:56] MySQL Verification Team
Hello Hartmut,

Thank you for the bug report.
Verified as described.

Thanks,
Umesh
[24 Mar 2014 8:58] MySQL Verification Team
// From the bzr source

// 5.5.36

[ushastry@ushastry mysql-5.5.36]$ grep ENABLED_LOCAL_INFILE CMakeCache.txt include/my_config.h
CMakeCache.txt:ENABLED_LOCAL_INFILE:BOOL=OFF
CMakeCache.txt://ADVANCED property for variable: ENABLED_LOCAL_INFILE
CMakeCache.txt:ENABLED_LOCAL_INFILE-ADVANCED:INTERNAL=1
include/my_config.h:/* #undef ENABLED_LOCAL_INFILE */

// 5.5.37

[ushastry@ushastry mysql-5.5.37]$ grep ENABLED_LOCAL_INFILE CMakeCache.txt include/my_config.h
CMakeCache.txt:ENABLED_LOCAL_INFILE:BOOL=OFF
CMakeCache.txt://ADVANCED property for variable: ENABLED_LOCAL_INFILE
CMakeCache.txt:ENABLED_LOCAL_INFILE-ADVANCED:INTERNAL=1
include/my_config.h:/* #undef ENABLED_LOCAL_INFILE */

// 5.6.17

[ushastry@ushastry mysql-5.6.17]$ grep ENABLED_LOCAL_INFILE CMakeCache.txt include/my_config.h
CMakeCache.txt:ENABLED_LOCAL_INFILE:BOOL=ON
CMakeCache.txt://ADVANCED property for variable: ENABLED_LOCAL_INFILE
CMakeCache.txt:ENABLED_LOCAL_INFILE-ADVANCED:INTERNAL=1
include/my_config.h:#define ENABLED_LOCAL_INFILE 1

// 5.6.16

[ushastry@ushastry mysql-5.6.16]$ grep ENABLED_LOCAL_INFILE CMakeCache.txt include/my_config.h
CMakeCache.txt:ENABLED_LOCAL_INFILE:BOOL=ON
CMakeCache.txt://ADVANCED property for variable: ENABLED_LOCAL_INFILE
CMakeCache.txt:ENABLED_LOCAL_INFILE-ADVANCED:INTERNAL=1
include/my_config.h:#define ENABLED_LOCAL_INFILE 1
[14 Oct 2014 8:29] Tor Didriksen
The reason you see a difference between 5.5 and 5.6 is the patch for

Bug#13595996 CREATE A CONSISTENT DEVELOPMENT CMAKE OPTION SET AND MAKE IT A
DEFAULT

In 5.6 and up, we include this by default:
cmake/build_configurations/mysql_release.cmake
[27 Oct 2014 17:43] Paul DuBois
Noted in 5.6.22, 5.7.6 changelogs.

The ENABLED_LOCAL_INFILE CMake option incorrectly was enabled by
default.
[10 Dec 2014 14:14] Laurynas Biveinis
$ bzr log -r 6219
------------------------------------------------------------
revno: 6219
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Mon 2014-10-27 10:20:20 +0100
message:
  Bug#18448743 ENABLED_LOCAL_INFILE ENABLED BY DEFAULT IN 5.6
  
  Move the ENABLED_LOCAL_INFILE option
  from feature_set.cmake (which is included by default)
  to mysql_release.cmake (which is not included by default)
  
  mysql_release.cmake is included in PB builds, so local-infile will be enabled.