当前位置: 首页 > news >正文

修改德哥的PostgreSQL求解数独SQL在cedardb上运行

cedardb与PostgreSQL语法兼容,但是直接运行结果是NULL,求解失败。将中间子查询的结果打印出来看出了原因。
同样的输入数据,输出的位掩码不同,比如初始化列和宫编码,数组中的元素值相同,顺序不同。

cedardb 输出

id board cols boxes 1 000000010400000000020000000000050407008000300001090000300400200050100000000806000 {12,64,32,18,1,14,137,272,129} {20,1,2,10,0,129,169,272,76}

PostgreSQL输出

1 | 000000010400000000020000000000050407008000300001090000300400200050100000000806000 | {12,18,129,137,272,32,14,1,64} | {10,0,1,129,272,76,20,169,2}

将相应的聚合函数array_agg(m)改为明确的排序array_agg(m ORDER BY c), 在cedardb 输出了与PostgreSQL相同的结果。

id board cols boxes 1 000000010400000000020000000000050407008000300001090000300400200050100000000806000 {12,18,129,137,272,32,14,1,64} {10,0,1,129,272,76,20,169,2}

再运行完整SQL,cedardb 求解出了示例数据的结果,时间约是PostgreSQL的十分之一。
PostgreSQL输出

id | puzzle | result ----+-----------+----------- 3 | 8????????+| 812753649+ | ??36?????+| 943682175+ | ?7??9?2??+| 675491283+ | ?5???7???+| 154237896+ | ????457??+| 369845721+ | ???1???3?+| 287169534+ | ??1????68+| 521974368+ | ??85???1?+| 438526917+ | ?9????4?? | 796318452 (1 row) Time: 1211.606 ms (00:01.212)

cedardb 输出

id puzzle result 3 8???????? ??36????? ?7??9?2?? ?5???7??? ????457?? ???1???3? ??1????68 ??85???1? ?9????4?? 812753649 943682175 675491283 154237896 369845721 287169534 521974368 438526917 796318452 2026-01-24 05:37:18.850220019 UTC INFO: [s] execution: (0.116115 min, 0.116115 max, 0.116115 median, 0.0% relMAD, 0.116115 avg, 0.000000 sdev, 4 scale, nan IPC, nan CPUs, nan GHz) compilation: (0.006032 min, 0.006032 max, 0.006032 median, 0.0% relMAD, 0.006032 avg, 0.000000 sdev)

但是如果是多个行,cedardb就报错了,看来是在生成执行计划阶段报错,原因还需要进一步研究。

2026-01-24 11:54:10.854135438 UTC FATAL: Assertion `(x != y) && (lca(x, y) == x)` failed. /cedardb/plan/algebra/operators/Operator.cpp:280: static cedar::algebra::Operator* cedar::algebra::Operator::LinkCutNode::findContainingChild(cedar::algebra::Operator*, cedar::algebra::Operator*) CedarDB v2026-01-22 current-amd64 cedardb 0x31aff8b
http://www.cnnetsun.cn/news/800190.html

相关文章:

  • 2026年多模态模型趋势入门必看:Glyph开源框架+弹性GPU部署指南
  • 又有新项目了,开整?
  • SGLang支持Qwen3-1.7B?推理加速配置全讲解
  • 【Django毕设全套源码+文档】基于django推荐算法在汽车营销中的设计与实践(丰富项目+远程调试+讲解+定制)
  • 【Django毕设全套源码+文档】基于Python的邮件分类系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • Glyph医疗辅助诊断:医学影像报告生成系统实战
  • 麦橘超然镜像适合哪些人群?这三类人最受益
  • 如何用YOLO11做自动标注?真实项目经验分享
  • 【Django毕设源码分享】基于Django的网上租车系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 大模型部署新方式:GPT-OSS+WEBUI轻量化实践
  • Windows 操作系统下安装 make 工具的方法
  • 如何用YOLOv12镜像训练自定义数据集?保姆级教程
  • 修改DIFY源代码,构建新镜像的方法
  • YOLOv10工程化交付实践,MLOps思维落地
  • WinDbg Preview下载与内核态调试环境搭建:新手教程
  • 企业办公新方案!Open-AutoGLM自动处理日报周报
  • 家庭网络软路由搭建与传统路由器对比分析
  • 深入理解8个基本门电路图:基于CMOS技术深度剖析
  • Unsloth增量学习:持续更新模型知识
  • WorkFolders.exe文件丢失找不到 免费下载 方法分享
  • 机械制造网页中,实现大文件上传下载有哪些实用方案?
  • 用Qwen3-Embedding-0.6B做了个智能客服原型,效果超出预期
  • 语音项目必备技能:如何正确使用VAD工具
  • Qwen3-0.6B支持长文本吗?实测32768 tokens表现
  • 深度剖析ES6:数值与数组新特性的使用场景
  • 2026 AI安全新方向:CAM++在金融反欺诈中的应用指南
  • Ubuntu自启服务踩坑总结:这个测试镜像真的帮大忙
  • 视觉提示VS文本提示?YOLOE两种方式对比实测
  • YOLO26 Web服务封装:Flask API接口构建教程
  • 基于fastbootd的紧急恢复功能:Qualcomm项目应用解析