news 2026/4/23 7:13:19

duckdb数据库CROSS JOIN LATERAL 中使用 EXISTS子查询的一个bug

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
duckdb数据库CROSS JOIN LATERAL 中使用 EXISTS子查询的一个bug

以下代码片段改编自能够在PostgreSQL中正常执行的SQL。只把pi部分的/改写成了//。

WITHRECURSIVE d(d)ASMATERIALIZED(SELECTdfromgenerate_series(1,9)t(d)),pi(pos,r,c,bx)ASMATERIALIZED(SELECTpos,((pos-1)// 9) + 1 AS r,((pos-1)%9)+1ASc,((pos-1)// 9) // 3 * 3 + ((pos - 1) % 9) // 3 + 1 AS bxFROMgenerate_series(1,81)ASt(pos)),cp(id,pz,bs)AS(SELECTid,puzzle,regexp_split_to_array(regexp_replace(regexp_replace(puzzle,'[\r\n\s]','','g'),'\?','0','g'),'')::integer[]ASbsFROM(SELECT3ASid,E'800000000003600000070090200050007000000045700000100030001000068008500010090000400'ASpuzzle)sudoku9_9),s1(id,flag,bs,bse,i)ASMATERIALIZED(SELECTid,'0',bs,ARRAY[]::integer[][],0ASiFROMcpUNIONALLSELECTs1.id,n.flag,n.bs,n.bse,s1.i+1ASiFROMs1 s1CROSSJOINLATERAL(witheb(pos,r,c,bx,v)AS(SELECTpi.pos,pi.r,pi.c,pi.bx,1FROMpi),cd(pos,r,c,bx,d)AS(SELECTe.pos,e.r,e.c,e.bx,d.dFROMeb eCROSSJOINdWHEREe.v=0ANDNOTEXISTS(SELECT1FROMeb e2WHEREe2.r=e.rANDe2.v=d.d)ANDNOTEXISTS(SELECT1FROMeb e2WHEREe2.c=e.cANDe2.v=d.d)ANDNOTEXISTS(SELECT1FROMeb e2WHEREe2.bx=e.bxANDe2.v=d.d))/* , cd(pos, r, c, bx, d) AS ( SELECT e.pos, e.r, e.c, e.bx, d.d FROM eb e CROSS JOIN d LEFT JOIN eb e2 ON e2.r = e.r AND e2.v = d.d LEFT JOIN eb e3 ON e3.c = e.c AND e3.v = d.d LEFT JOIN eb e4 ON e4.bx = e.bx AND e4.v = d.d WHERE e.v = 0 AND e2.r IS NULL AND e3.r IS NULL AND e4.r IS NULL )*/SELECT'1'flag,bs,s1.bsefromeblimit1)nwheres1.i<3)select*froms1;

执行报错

Invalid Error: vector::_M_range_check: __n (which is 2) >= this->size() (which is 2)

即使只有一个NOT EXISTS 语句,也会报同样错误。
将cd子查询改成注释块中的写法则能执行成功。
如果cd和eb不在JOIN LATERAL中,而是单独的CTE子查询,也不报错。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 6:46:55

HsMod炉石传说终极优化指南:解锁游戏隐藏潜能

HsMod炉石传说终极优化指南&#xff1a;解锁游戏隐藏潜能 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 想要让《炉石传说》的游戏体验更上一层楼吗&#xff1f;HsMod作为基于BepInEx框架的专业…

作者头像 李华
网站建设 2026/4/18 8:41:15

初学者必看:Arduino IDE下载与初始设置操作指南

从零开始玩转 Arduino&#xff1a;IDE 下载与环境搭建实战指南 你是不是也曾在网上搜索“Arduino 怎么用”&#xff0c;结果发现第一步就卡住了—— 软件不会装、驱动找不到、上传失败还报一堆看不懂的错误码&#xff1f; 别担心&#xff0c;这几乎是每个初学者都会经历的“…

作者头像 李华
网站建设 2026/4/22 22:42:22

通义千问2.5-7B部署监控怎么做?Prometheus集成实战

通义千问2.5-7B部署监控怎么做&#xff1f;Prometheus集成实战 1. 引言&#xff1a;大模型服务监控的必要性 随着大语言模型&#xff08;LLM&#xff09;在企业级场景中的广泛应用&#xff0c;如何保障其稳定、高效运行成为工程落地的关键挑战。通义千问2.5-7B-Instruct作为一…

作者头像 李华
网站建设 2026/4/19 19:42:21

微信防撤回技术解析:从原理到实战的完整指南

微信防撤回技术解析&#xff1a;从原理到实战的完整指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gitcode.com/GitHub_…

作者头像 李华
网站建设 2026/4/21 8:54:50

bert-base-chinese模型服务网格:微服务架构

bert-base-chinese模型服务网格&#xff1a;微服务架构 1. 引言 随着自然语言处理技术的快速发展&#xff0c;预训练语言模型已成为中文文本理解任务的核心基础设施。其中&#xff0c;bert-base-chinese 作为 Google 发布的经典中文 BERT 模型&#xff0c;在工业界广泛应用&a…

作者头像 李华
网站建设 2026/4/20 17:18:00

VibeThinker低成本训练方案:云端GPU+预置镜像省80%

VibeThinker低成本训练方案&#xff1a;云端GPU预置镜像省80% 你是不是也遇到过这样的困境&#xff1a;作为NLP工程师&#xff0c;手头有个专业领域微调任务——比如法律文书生成、医疗问答系统或金融报告摘要&#xff0c;想用大模型提升效果&#xff0c;但一算账发现本地训练…

作者头像 李华