Design of an intermediate representation for query languages
Romain Vernoux

TL;DR
This paper introduces QIR, a new intermediate representation for query languages that aims to unify and optimize queries across different database systems, enabling richer queries with user-defined functions.
Contribution
The paper presents QIR, a small calculus for representing queries in an application- and database-agnostic way, and proposes an evaluation strategy to optimize query representations.
Findings
QIR effectively models common query primitives.
The evaluation strategy improves query representations.
QIR enables richer, more efficient database queries.
Abstract
Data oriented applications, usually written in a high-level, general-purpose programming language (such as Java) interact with database through a coarse interface. Informally, the text of a query is built on the application side (either via plain string concatenation or through an abstract notion of statement) and shipped to the database over the wire where it is executed. The results are then serialized and sent back to the "client-code" where they are translated in the language's native datatypes. This round trip is detrimental to performances but, worse, such a programming model prevents one from having richer queries, namely queries containing user-defined functions (that is functions defined by the programmer and used e.g. in the filter condition of a SQL query). While some databases also possess a "server-side" language (e.g. PL/SQL in Oracle database), its integration with the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Database Systems and Queries · Graph Theory and Algorithms · Data Management and Algorithms
