First-Class Functions for First-Order Database Engines
Torsten Grust • Alexander Ulrich
Proceedings of the 14th International Symposium on Database Programming Languages (DBPL 2013), Riva del Garda, Italy, August 30, 2013.
We describe query defunctionalization which enables off-the-shelf first-order database engines to process queries over first-class functions. Support for first-class functions is characterized by the ability to treat functions like regular data items that can be constructed at query runtime, passed to or returned from other (higher-order) functions, assigned to variables, and stored in persistent data structures. Query defunctionalization is a non-invasive approach that transforms such function-centric queries into the data-centric operations implemented by common query processors. Experiments with XQuery and PL/SQL database systems demonstrate that first-order database engines can faithfully and efficiently support the expressive functions as data paradigm.