Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-10311

AbstractType value compatibility checks are broken for some of the implementations

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Not A Problem
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      We should document how type coercion works, in all contexts (UDFs, query responses, merging), and what our criteria are for success. Right now it looks like we perform no conversion, so we should require that they are compared in the same way (if they are clusterings), and that they at least have the same number of bytes (if both fixed width).

      Integer type considers itself value compatible with Int32 and Long, which from an AlterTable point of view at least seems potentially problematic.

      It's very likely I'm missing something. However as it stands we seem able to read an old type from an sstable, have it make it through a compaction unscathed, and write out the same bytes "as" the new type. If I'm correct about this behaviour, this will corrupt this partition in the new sstable so that it cannot be read.

      Not marking as critical/blocker, as I'm not familiar enough with how this works to say if this brief analysis is correct, but if I am we should raise the priority.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                benedict Benedict
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: