#13975·neo4j

在 CREATE INDEX ... OPTIONS {indexConfig} 中的超出范围的字面值会引发 50N00 错误,并向客户端回显内部 AST

作者: hkjiang26创建于 2026年9月11日更新于 2026年9月11日
标签bugteam-cypherGithub Issue

Neo4j 版本: neo4j:2026.07.1
安装方法: Docker
API: Cypher (Bolt / HTTP)
### 可重现的步骤
1. 在新数据库上,运行:
cypher<br />CREATE INDEX idx_x IF NOT EXISTS FOR (n:L) ON (n.p) OPTIONS {indexConfig: {`vector.dimensions`: 99999999999999999999}}<br /> 或任何在评估时抛出的索引配置表达式,例如:
cypher<br />CREATE POINT INDEX idx_y IF NOT EXISTS FOR (n:L) ON (n.p) OPTIONS {indexConfig: {`spatial.cartesian.min`: [99999999999999999999, 0.0]}}<br />CREATE INDEX idx_z IF NOT EXISTS FOR (n:L) ON (n.p) OPTIONS {indexConfig: {`vector.dimensions`: 1/0}}<br />
### 预期行为
在正常表达式中,相同的文本是一个干净的客户端错误 - RETURN 99999999999999999999SyntaxError "integer is too large", RETURN 1/0ArithmeticError 22012, RETURN 9223372036854775807 + 1ArithmeticError 22003。OPTIONS 上下文应生成相同的客户端类型错误(22xxx)。
### 实际行为

Neo.DatabaseError.Statement.ExecutionFailed (50N00)<br />Failed to evaluate expression SignedDecimalIntegerLiteral(99999999999999999999)<br />