Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Oracle: size() of a text longer than 4,000 characters is null

未关闭 适合新手
#168 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
78/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
python, sql
领域
backend, databases

调研方向

从 drivine/cypher/sql/oracle_cypher_compiler.py:392 开始,追踪 size() 如何编译其 JSON 文本查找;issue 指出 JSON_VALUE 的默认限制为 4,000 个字符。为存储的 5,000 字符文本添加一个 spec 用例,并运行相关的编译器 spec。查询返回 5000(与 Neo4j 一致)即为完成。

由索引模型根据 Issue 内容生成。

描述

Port of liberation-data/drivine4j#298.

MATCH (n:Doc) WITH n.a AS x RETURN size(x)   // n.a = "x" * 5_000

Neo4j returns 5000. The compiled SQL measures the text as LENGTH(JSON_VALUE(w3.c1, '$')), and JSON_VALUE returns VARCHAR2(4000) unless told otherwise, so a longer text is null (NULL ON ERROR). Found while benchmarking #255; it's the same on main and with #255's fix.

Expected: 5000, as Neo4j gives. Reading the text with RETURNING CLOB (and LENGTH of that) would do it; other places that read a text with JSON_VALUE with no RETURNING clause may have the same 4,000 limit.

A spec case: size() of a stored text of 5,000 characters.

Where: drivine/cypher/sql/oracle_cypher_compiler.py:392.

主要语言
Python
星标
1
派生
0
平均合并
1 小时 10 分钟
30 天内合并 PR
88

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

liberation-data/drivine-python 的其他 Issue

查看 liberation-data/drivine-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。