Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Denis Hirn

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

Domains — the database's venue-derived domains; a paper can count in several

Databases, data management, data science and information retrieval · 9 · 4 first-author · 6 since 2021Software engineering, systems software and programming languages · 1 · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Databases, data mining, and information retrieval
6 papers
Query processing and optimization · 66% Data models and query languages · 21% Database system architecture and tuning · 13%
Software engineering, system software, and programming languages
4 papers
Compilers and program optimization · 50% Empirical software engineering · 41% Programming languages and type systems · 9%

Topics — the 6 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Query processing and optimization
query compilation
1.322024
SQL Engines Excel at the Execution of Imperative Programs · Proc. VLDB Endow. 2024
Snakes on a Plan: Compiling Python Functions into Plain SQL Queries · SIGMOD Conference 2022
Compilers and program optimization › program transformation
source-to-source transformation
0.922021
One WITH RECURSIVE is Worth Many GOTOs · SIGMOD Conference 2021
PL/SQL Without the PL · SIGMOD Conference 2020
Query processing and optimization
user-defined functions
0.812024
SQL Engines Excel at the Execution of Imperative Programs · Proc. VLDB Endow. 2024
Empirical software engineering
reproducibility
0.812024
A Reproducible Tutorial on Reproducibility in Database Systems Research · Proc. VLDB Endow. 2024
Query processing and optimization › query execution
user-defined function execution
0.322021
One WITH RECURSIVE is Worth Many GOTOs · SIGMOD Conference 2021
PL/SQL Without the PL · SIGMOD Conference 2020
Programming languages and type systems › interoperability
language interoperability
0.212022
Snakes on a Plan: Compiling Python Functions into Plain SQL Queries · SIGMOD Conference 2022

Methods — techniques the papers use, named apart from their topics

docker · 1.5containerization · 1.5artifact packaging · 1.5recursive SQL:1999 · 1.1control-flow translation · 1.1trampolined style · 1.0decorrelation · 0.8compilation strategy · 0.8
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 Functional Programming on Top of SQL Engines
Tobias Burghardt, Denis Hirn, Torsten Grust
PADL2
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