Bug #97758 sql_mode as table and array
Submitted: 24 Nov 2019 15:07 Modified: 25 Nov 2019 4:57
Reporter: Daniël van Eeden (OCA) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: SYS Schema Severity:S4 (Feature request)
Version:8.0.18 OS:Any
Assigned to: CPU Architecture:Any
Tags: SQL_MODE, sys

[24 Nov 2019 15:07] Daniël van Eeden
Description:
The @@sql_mode is not in an easy to consume format. Would be nice to have this in a JSON array or SQL table in the SYS schema.

Examples:

WITH RECURSIVE
  sqlmodelength AS (
    SELECT 1+LENGTH(@@sql_mode) - LENGTH(REPLACE(@@sql_mode, ',', '')) AS len
  ),
  sqlmode AS (
    SELECT 1 AS n, SUBSTRING_INDEX(@@sql_mode,",", 1) AS sqlmode
    UNION ALL
    SELECT n + 1, SUBSTRING_INDEX(SUBSTRING_INDEX(@@sql_mode,",", n+1),",",-1) FROM sqlmode
      WHERE n<(SELECT len FROM sqlmodelength)
  ) 
SELECT sqlmode FROM sqlmode ORDER BY sqlmode;

WITH RECURSIVE
  sqlmodelength AS (
    SELECT 1+LENGTH(@@sql_mode) - LENGTH(REPLACE(@@sql_mode, ',', '')) AS len
  ),
  sqlmode AS (
    SELECT 1 AS n, SUBSTRING_INDEX(@@sql_mode,",", 1) AS sqlmode
    UNION ALL
    SELECT n + 1, SUBSTRING_INDEX(SUBSTRING_INDEX(@@sql_mode,",", n+1),",",-1) FROM sqlmode
      WHERE n<(SELECT len FROM sqlmodelength)
  ) 
SELECT JSON_ARRAYAGG(sqlmode) FROM sqlmode ORDER BY sqlmode;

The problem is that MySQL won't let me create these as views.
Having something more generic that would take a comma separated string and create a table and/or JSON array would be nice.

How to repeat:
See description
[25 Nov 2019 4:57] MySQL Verification Team
Hello Daniël,

Thank you for the reasonable feature request!

regards,
Umesh