Mögen Cassandra-Karten Nullwerte enthalten

8

Kann eine Cassandra (CQL 3) map Nullwerte enthalten? Ich dachte, dass null Werte erlaubt sind, aber das Scheitern meines Programms schlägt etwas anderes vor. Oder gibt es einen Fehler in dem Treiber, den ich verwende?

Die offizielle Dokumentation für CQL map s sagt :

  

Eine Map ist eine typisierte Gruppe von Schlüssel / Wert-Paaren, wobei Schlüssel eindeutig sind. Beachten Sie außerdem, dass die Map intern nach ihren Schlüsseln sortiert ist und daher immer in dieser Reihenfolge zurückgegeben wird.

Die Schlüssel dürfen also nicht null sein (sonst wäre das Sortieren unmöglich), aber es wird nicht erwähnt, dass map Werte nicht null sind.

Ich habe ein Feld, das ein map<timestamp,uuid> ist, mit dem ich versuche, Werte in einem Java Map< Date, UUID > zu schreiben. Einer der Kartenwerte ( UUID s) ist null. Dies scheint eine NPE im Cassandra-Client-Code (Cassandra-Version 1.2.6, vom DataStax-Java-Treiber 1.0.1 aufgerufen) beim Marshalling der UUID der Karte zu verursachen:

%Vor%

Die Methode UUIDGen.decompose(UUID) hat keine spezielle Behandlung von null UUID , daher die NPE. Vergleichen Sie mit JdbcBoolean.decompose(Boolean) , das eine Null Boolean in einen leeren Byte-Puffer zerlegt. In ähnlicher Weise zerlegt JdbcDate.decompose(Date) eine Null Date in einen leeren Byte-Puffer.

Ich kann ein ähnliches Problem erzeugen, wenn ich eine Map mit null ganzen Zahlen habe (mit einem Java Map< Date, Integer > mit einem Nullwert für eine Cassandra map<timestamp,int> ), also ist dieses Problem nicht auf uuid values.     

Raedwald 29.07.2014, 13:48
quelle

1 Antwort

5

Sie haben Recht, Nullwerte werden (noch?) nicht in Maps unterstützt. Ich habe diese Sache schon einmal gesehen und konnte keine relative Dokumentation finden - in ähnlicher Situation helfe ich mir selbst mit cqlsh

Ein kleiner Test gibt Ihnen die Antwort

%Vor%

probiere

aus %Vor%

& gt; Ungültige Anforderung: null wird in Sammlungen nicht unterstützt

HTH, Carlo

    
Carlo Bertuccini 29.07.2014, 17:00
quelle

Tags und Links