2015-11-16 3 views
4

Est UPDATE IF [condition] où [condition] est une inégalité, supportée par Cassandra CQL? J'ai jeté un coup d'oeil sur la référence du langage et il semble que CQL ne devrait pas être capable de supporter l'inégalité à travers sa grammaire. Ce qui est déroutant, c'est qu'en utilisant le pilote C# ou CQLSH, la requête est exécutée avec succès, mais en faisant la même chose à partir de Datasax DevCenter, j'obtiens une erreur.Est-ce que Cassandra Update IF est une instruction où la condition est une expression d'inégalité prise en charge?

J'utilise une requête similaire à celui ci-dessous:

UPDATE product 
SET edit_date = [new_value] 
WHERE customer_id = '4' AND code = 'AMZ-ISMDB' 
IF edit_date < [new_value] 

Les résultats sont les suivants:

  • Datasax DevCenter renvoie une erreur lors d'une tentative d'exécuter l'extrait de script. L'erreur que je reçois se plaint de l'inégalité dans la partie UPDATE IF du script.

    Il existe une erreur de syntaxe dans le script en cours (voir les détails ci-dessous). Veuillez corriger le problème et réessayer. Ligne 29: pas d'alternative viable à l'entrée « < »

  • Si je CLINQ avec le pilote Datasax C# la requête est générée comme ci-dessus et lors de l'exécution de la mise à jour est conservée si le nouveau edit_date est après la edit_date existante qui est le comportement attendu.

  • En utilisant CQLSH la requête est exécutée avec succès et la mise à jour persistée

+0

Quelle est votre version de Cassandra et CQL? –

Répondre

1

La question est très probable que DevCenter n'a pas été mis à jour pour la dernière syntaxe.

conditions d'inégalité ont été ajoutées: CASSANDRA-6839

On dirait qu'ils ont raté la mise à jour des documents quand cela a été ajouté. J'ouvre CASSANDRA-10752 pour obtenir ce corrigé.

+0

Merci pour l'effort de l'homme! Gardera un oeil sur le billet. –

0

Ce problème a été corrigé dans DevCenter version 1.6.0.