2013-06-14 4 views
0

Y a-t-il une liste de mots réservés pour Neo4j Cypher? Je voudrais éviter les pièges que d'autres ont découverts, les mots réservés m'ont mordu dans le passé avec d'autres projets.Cypher Liste des mots réservés?

Répondre

0

Les seuls mots vraiment réservés (comme de 2,0 M03) sont (et, désolé si elle est incomplète, c'est du haut de ma tête):

START 
MATCH 
WHERE 
WITH 
RETURN 
FOREACH 
CREATE 
SET 
UNION 
DELETE 
REMOVE 
CASE 
WHEN 
THEN 
ASC 
DESC 

Il y a des fonctions/fonctions d'agrégation et , mais l'analyseur est assez intelligent pour pouvoir permettre des choses comme:

RETURN count(*) as count 

Je ne vous inquiétez pas - il vous donnera une erreur raisonnable si vous touchez un de ces cas de toute façon. Comme suit:

Query: 
START match=node(*) 
RETURN match 
Error: reserved keyword 
"START match=node(*) " 
+0

Qu'en est' LIMIT'? – programmer5000

+1

@ programmeur5000 cette liste est totalement dépassée ces jours-ci. Ils ont réécrit l'analyseur en 2.1 ou quelque part dans le coin, et il est beaucoup plus intelligent et plus flexible sur les choses dans leur contexte. 'match (match) retour match comme retour limite 1' –

3

Il n'y a pas de liste complète de mots réservés dans la documentation. Pour la prochaine version 2.0, les mots-clés sont définis dans un seul fichier, avec les abréviations possibles (comme asc/desc):

https://github.com/neo4j/neo4j/blob/2.0/community/cypher/src/main/scala/org/neo4j/cypher/internal/parser/v2_0/Strings.scala

Version 1.9 est un peu moins bien organisés, la plupart sont en https://github.com/neo4j/neo4j/blob/2.0/community/cypher/src/main/scala/org/neo4j/cypher/internal/parser/v1_9/Base.scala, « créer unique » est en https://github.com/neo4j/neo4j/blob/2.0/community/cypher/src/main/scala/org/neo4j/cypher/internal/parser/v1_9/CreateUnique.scala

+0

Bon point. Votre liste 2.0 est plus complète que la mienne. "unique" n'est pas réellement réservé, bien que "créer" soit. –

+0

BTW, l'analyseur est probablement en train de changer bientôt, donc il peut ne pas avoir les mêmes exigences de mot-clé. Découvrez la branche "analyseur expérimental". –

+0

Le lien 1 est maintenant mort. – programmer5000

Questions connexes