Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Fix Version/s: 2.2.4, 3.0.1, 3.1
    • Component/s: CQL
    • Labels:
      None

      Description

      I stumbled onto the fact that 2.2.0 will allow you to ALTER TYPE of a varint to the new date type. I thought that was an odd conversion to allow, so I attempted to query it. I received an error on all subsequent queries, unless I exited or truncated the table.

      After truncating, I could then INSERT and query as normal. But the new varint values inserted simply were reflected as an offset of the minimum varint value.

      I'm not sure why that's happening, but if we could simply prevent type conversion between varint and date (and just show the "types are incompatible" message) that should fix this.

      Steps to reproduce:

      aploetz@cqlsh:typeconversion> CREATE TABLE varinttest (key int PRIMARY KEY, c1 varint);
      aploetz@cqlsh:typeconversion> INSERT INTO varinttest (key, c1) VALUES (1,1);
      aploetz@cqlsh:typeconversion> SELECT * FROM varinttest ;
      
       key | c1
      -----+----
         1 |  1
      
      (1 rows)
      aploetz@cqlsh:typeconversion> ALTER TABLE varinttest ALTER c1 TYPE date;
      aploetz@cqlsh:typeconversion> SELECT * FROM varinttest ;
      Traceback (most recent call last):
        File "/usr/bin/cqlsh.py", line 1150, in perform_simple_statement
          rows = future.result(self.session.default_timeout)
        File "/usr/share/cassandra/lib/cassandra-driver-internal-only-2.6.0c2.post.zip/cassandra-driver-2.6.0c2.post/cassandra/cluster.py", line 3296, in result
          raise self._final_exception
      error: unpack requires a string argument of length 4
      
      aploetz@cqlsh:typeconversion> SELECT * FROM varinttest ;
      NoHostAvailable: ('Unable to complete the operation against any hosts', {<Host: 127.0.0.1 PloetzLabs>: ConnectionShutdown('Connection to 127.0.0.1 is defunct',)})
      aploetz@cqlsh:typeconversion> TRUNCATE varinttest ;
      aploetz@cqlsh:typeconversion> SELECT * FROM varinttest ;
      
       key | c1
      -----+----
      
      (0 rows)
      aploetz@cqlsh:typeconversion> INSERT INTO varinttest (key, c1) VALUES (1,1);
      aploetz@cqlsh:typeconversion> INSERT INTO varinttest (key, c1) VALUES (2,2);
      aploetz@cqlsh:typeconversion> INSERT INTO varinttest (key, c1) VALUES (3,3);
      aploetz@cqlsh:typeconversion> SELECT * FROM varinttest ;
      
       key | c1
      -----+-------------
         1 | -2147483647
         2 | -2147483646
         3 | -2147483645
      
      (3 rows)
      

        Attachments

        1. 10027-2.2.txt
          3 kB
          Benjamin Lerer

          Issue Links

            Activity

              People

              • Assignee:
                blerer Benjamin Lerer
                Reporter:
                aploetz Aaron Ploetz
                Reviewer:
                Joshua McKenzie
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: