Type inference for datalog and its application to query optimisation

  • Authors:
  • Oege de Moor;Damien Sereni;Pavel Avgustinov;Mathieu Verbaere

  • Affiliations:
  • Semmle Ltd., Oxford, United Kngdm;Semmle Ltd., Oxford, United Kngdm;Semmle Ltd., Oxford, United Kngdm;Semmle Ltd., Oxford, United Kngdm

  • Venue:
  • Proceedings of the twenty-seventh ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Certain variants of object-oriented Datalog can be compiled to Datalog with negation. We seek to apply optimisations akin to virtual method resolution (a well-known technique in compiling Java and other OO languages) to improve efficiency of the resulting Datalog programs. The effectiveness of such optimisations strongly depends on the precision of the underlying type inference algorithm. Previous work on type inference for Datalog has focussed on Cartesian abstractions, where the type of each field is computed separately. Such Cartesian type inference is inherently imprecise in the presence of field equalities. We propose a type system where equalities are tracked, and present a type inference algorithm. The algorithm is proved sound. We also prove that it is optimal for Datalog without negation, in the sense that the inferred type is as tight as possible. Extensive experiments with our type-based optimisations, in a commercial implementation of object-oriented Datalog, confirm the benefits of this non-Cartesian type inference algorithm.