AI 中文总结
研究针对SQL调试难的问题,提出I-Rex调试器,借鉴通用编程语言调试范式,利用数据库系统能力让用户可跳转到任意感兴趣点,作为轻量级中间件简化部署,经实验和用户研究证明了其有效性。
AI 中文摘要
SQL本质上是声明式的且功能丰富。编写语义正确的SQL查询并找出其中的逻辑错误并非易事,即便对有经验的程序员也是如此,因为他们常习惯通用编程语言的思维方式。虽然有许多通用编程语言调试器,但SQL调试较少受到关注。本文提出I-Rex,一个SQL调试器,能让用户以可视化和交互式方式检查SQL查询的逻辑执行,以识别并可能修复查询中的逻辑错误。I-Rex借鉴通用编程语言的调试范式,便于程序员采用。与调试通用编程语言不同,I-Rex通过选择性物化和查询重写,利用数据库系统的能力让用户能跳转到任意感兴趣的点。为简化部署,I-Rex作为数据库系统之上的轻量级中间件,调试时无需为数据库准备开销,也不在数据库系统中维护状态。我们通过性能实验以及在教育环境中的用户研究证明了I-Rex的有效性。
英文摘要
SQL is declarative in nature and rich in its features. Writing semantically correct SQL queries and finding logical bugs in SQL are not easy, even for experienced programmers, who are often used to the mindset of working with general-purpose programming languages (GPLs). While there are many GPL debuggers, SQL debugging has received much less attention. In this paper, we present I-Rex, a SQL debugger that enables users to inspect the logical execution of SQL queries visually and interactively to identify and potentially fix logical bugs in the queries. I-Rex draws analogies to the debugging paradigm of GPLs (e.g., stepping, watchpoints, etc.), making it easier for programmers to adopt. However, unlike debugging GPLs, which involves executing the underlying program in full to the point of interest, I-Rex allows users to jump to arbitrary points of interest by leveraging the power of the database systems, through selective materialization and query rewrites. To simplify deployment, I-Rex acts as a lightweight middleware on top of the database system; it imposes no overhead to prepare a database for debugging and maintains no state in the database systems during debugging sessions. We demonstrate the effectiveness of I-Rex through performance experiments as well as a user study in an educational setting.