Denis Hirn

dblp:238/4353 · DBLP profile ↗
← Back
9ranked-venue papers in the field
4as first author
6since 2021 · last 2024
0000-0001-7040-1780ORCID · verified

Domains — venue-derived; a paper can count in several

Database Systems & Data Management · 9 (4 first)
YearPublicationVenuePosition
2024 Dear User-Defined Functions, Inlining isn't working out so great for us. Let's try batching to make our relationship work. Sincerely, SQL
Kai Franz, Samuel Arch, Denis Hirn, Torsten Grust, Todd C. Mowry, Andrew Pavlo
CIDR3
2024 SQL Engines Excel at the Execution of Imperative Programs
abstract
SQL query engines can act as efficient runtime environments for the execution of imperative programs over database-resident tabular data. To make this point, we lay out the details of a compilation strategy that maps the basic blocks of arbitrarily branching and looping control flow graphs into plain---possibly recursive---SQL:1999 common table expressions. The compiler does not stumble when faced with imperative programs of several hundred lines and emits SQL code that can execute such programs over entire batches of input arguments. These batches create opportunities for parallel program evaluation which contemporary query decorrelation techniques exploit automatically. SQL engines that already support UDFs may find the present program execution approach to outperform their native implementation---SQL engines without such support may gain UDF capabilities without the need to build a dedicated interpreter.
Tim Fischer 0003, Denis Hirn, Torsten Grust
Proc. VLDB Endow.2
2024 A Reproducible Tutorial on Reproducibility in Database Systems Research
abstract
Reproducibility is a key aspect of the scientific method, and it is essential for building trust in the results of research. This tutorial aims to provide concrete guidance on how to leverage containerized reproducibility using Docker for database systems research. In this tutorial, we present a step-by-step guide on how to prepare a Docker-based artifact for an experiment. We will cover topics such as Dockerfiles, Docker images, Docker Compose, automation using Python, Bash, and Make, and also artifact documentation and packaging best practices. The tutorial itself is a reproducible artifact, and we provide a public GitHub repository with all the code and examples used in the tutorial. This repository can serve as a starting point to prepare artifacts for experiments and publications.
Tim Fischer 0003, Denis Hirn, Gökhan Kul
Proc. VLDB Endow.2
2023 A Fix for the Fixation on Fixpoints
Denis Hirn, Torsten Grust
CIDR1
2022 Snakes on a Plan: Compiling Python Functions into Plain SQL Queries
abstract
"Move your computation close to the data" is decades-old advice that is hard to follow if your code exhibits complex control flow. The runtime of such applications suffers from a continual back and forth between database-external code execution and plan-based SQL evaluation. We demonstrate the ByePy compiler which translates entire Python functions with arbitrary control flow-including deeply nested iteration-into plain recursive SQL:1999 queries. The invocation of a ByePy-compiled function enters the database engine once to execute the plan of a single query. Computation does not get much closer to the data than this. The system rewards this translation effort from Python to SQL with runtime improvements of up to an order of magnitude.
Tim Fischer 0003, Denis Hirn, Torsten Grust
SIGMOD Conference2
2021 One WITH RECURSIVE is Worth Many GOTOs
abstract
PL/SQL integrates an imperative statement-by-statement style of programming with the plan-based evaluation of SQL queries. The disparity of both leads to friction at runtime, slowing PL/SQL execution down significantly. This work describes a compiler from PL/SQL UDFs to plain SQL queries. Post-compilation, evaluation entirely happens on the SQL side of the fence. With the friction gone, we observe execution times to improve by about a factor of 2, even for complex UDFs. The compiler builds on techniques long established by the programming language community. In particular, it uses trampolined style to compile arbitrarily nested iterative control flow in PL/SQL into SQL's recursive common table expressions.
Denis Hirn, Torsten Grust
SIGMOD Conference1
2020 Compiling PL/SQL Away
Christian Duta, Denis Hirn, Torsten Grust
CIDR2
2020 PL/SQL Without the PL
abstract
We demonstrate a source-to-source compilation technique that can translate user-defined PL/SQL functions into plain SQL queries. These PL/SQL functions may feature arbitrarily complex control flow-iteration, in particular. From this imperative-style input code we derive equivalent recursive common table expressions, ready for execution on any relational SQL:1999 back-end. Principally due to the absence of PL/SQL?SQL context switches, the output plain SQL code comes with substantial runtime savings. The demonstration embeds the compiler into an interactive setup that admits function editing while live re-compilation and visualization of intermediate code forms happens in the background.
Denis Hirn, Torsten Grust
SIGMOD Conference1
2019 PgCuckoo: Laying Plan Eggs in PostgreSQL's Nest
abstract
We demonstrate how to use PostgreSQL's planner hook to open a side entrance through which we can pass plan trees for immediate execution. Since this reaches deep into PostgreSQL, we implement plan detail inference and decoration to ensure that externally crafted trees perfectly mimic regular plans. Plan trees may then (1) be generated by external code generators that want to use PostgreSQL as a reliable and efficient back-end for new (maybe even non-relational) languages, or (2) stem from experimental rewrites of SQL plans that PostgreSQL itself does not implement (yet). The demonstration provides a live account of what becomes possible once we let PostgreSQL hatch foreign plan eggs.
Denis Hirn, Torsten Grust
SIGMOD Conference1