Presto读Tidb异常

tidb_enable_noop_functions 从 v4.0 版本开始引入

  • 作用域:SESSION | GLOBAL
  • 默认值: OFF
  • 默认情况下,用户尝试将某些语法用于尚未实现的功能时,TiDB 会报错。若将该变量值设为 ON ,TiDB 则自动忽略此类功能不可用的情况,即不会报错。若用户无法更改 SQL 代码,可考虑将变量值设为 ON
  • 启用 noop 函数可以控制以下行为:
    • get_lockrelease_lock 函数
    • LOCK IN SHARE MODE 语法
    • SQL_CALC_FOUND_ROWS 语法
    • CREATE TEMPORARY TABLE 语法
    • DROP TEMPORARY TABLE 语法
    • START TRANSACTION READ ONLYSET TRANSACTION READ ONLY 语法
    • tx_read_onlytransaction_read_onlyoffline_modesuper_read_only 以及 read_only 系统变量

警告

该变量只有在默认值 OFF 时,才算是安全的。因为设置 tidb_enable_noop_functions=1 后,TiDB 会自动忽略某些语法而不报错,这可能会导致应用程序出现异常行为。例如,允许使用语法 START TRANSACTION READ ONLY 时,事务仍会处于读写模式。