apache/cassandra · error

- COLUMN DEFINITION MISMATCH Query =

Error message

{} - COLUMN DEFINITION MISMATCH Query = {} 

What it means

ResultComparator.handleColumnDefMismatch in fqltool detected that the result set column definitions (names/types) for the same query differ between compared clusters, usually indicating a schema mismatch between the source and target sides. Logged with a UUID and passed to the mismatch listener.

Solutions

  1. Compare table schemas on all compared hosts (DESCRIBE / schema tables).
  2. Align schemas before re-running the comparison.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at tools/fqltool/src/org/apache/cassandra/fqltool/ResultComparator.java:126 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10). Data as JSON: /api/errors/3ffb3879d031766b. Report an issue: GitHub.

Appendix: source

Thrown at tools/fqltool/src/org/apache/cassandra/fqltool/ResultComparator.java:126

                mismatchListener.mismatch(mismatchUUID, targetHosts, query, rows);
        }
        catch (Throwable t)
        {
            logger.error("ERROR notifying listener", t);
        }
    }

    private void handleColumnDefMismatch(List<String> targetHosts, FQLQuery query, List<ResultHandler.ComparableColumnDefinitions> cds)
    {
        UUID mismatchUUID = UUID.randomUUID();
        StringBuilder sb = new StringBuilder("{} - COLUMN DEFINITION MISMATCH Query = {} ");
        for (int i = 0; i < targetHosts.size(); i++)
            sb.append("mismatch").append(i)
              .append('=')
              .append('"').append(targetHosts.get(i)).append(':').append(columnDefinitionsString(cds.get(i))).append('"')
              .append(',');

        logger.warn(sb.toString(), mismatchUUID, query);
        try
        {
            if (mismatchListener != null)
                mismatchListener.columnDefMismatch(mismatchUUID, targetHosts, query, cds);
        }
        catch (Throwable t)
        {
            logger.error("ERROR notifying listener", t);
        }
    }

    private String columnDefinitionsString(ResultHandler.ComparableColumnDefinitions cd)
    {
        StringBuilder sb = new StringBuilder();
        if (cd == null)
            sb.append("NULL");
        else if (cd.wasFailed())
            sb.append("FAILED");

View on GitHub (pinned to 88fd0f6a0e)