Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-26710

Histogram field in mysql.column_stats is too short, JSON histograms get corrupt

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • N/A
    • 10.8.1
    • Optimizer
    • None

    Description

      mysql.column_stats.histogram field is a standard BLOB. A few long values will overfill it easily, the JSON will get truncated and become invalid.

      create or replace table t (a varchar(8192));
      insert into t values
        (repeat('A',8192)),
        (repeat('B',8192)),
        (repeat('C',8192)),
        (repeat('D',8192)),
        (repeat('E',8192)),
        (repeat('F',8192)),
        (repeat('G',8192)),
        (repeat('H',8192)),
        ('I');
       
      set histogram_type= JSON_HB;
      analyze table t persistent for all;
      select * from t where a = 'foo';
       
      # Cleanup
      drop table t;
      

      preview-10.7-MDEV-26519-json-histograms da8bb4b4

      MariaDB [test]> select * from t where a = 'foo';
      ERROR 4183 (HY000): Failed to parse histogram: Root JSON element must be a JSON object at offset 0.
      

      Attachments

        Issue Links

          Activity

            People

              psergei Sergei Petrunia
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.