  We study the complexity of consistent query answering on databases that may
violate primary key constraints. A repair of such a database is any consistent
database that can be obtained by deleting a minimal set of tuples. For every
Boolean query q, CERTAINTY(q) is the problem that takes a database as input and
asks whether q evaluates to true on every repair. In [KW17], the authors show
that for every self-join-free Boolean conjunctive query q, the problem
CERTAINTY(q) is either in P or coNP-complete, and it is decidable which of the
two cases applies. In this paper, we sharpen this result by showing that for
every self-join-free Boolean conjunctive query q, the problem CERTAINTY(q) is
either expressible in symmetric stratified Datalog or coNP-complete. Since
symmetric stratified Datalog is in L, we thus obtain a complexity-theoretic
dichotomy between L and coNP-complete. Another new finding of practical
importance is that CERTAINTY(q) is on the logspace side of the dichotomy for
queries q where all join conditions express foreign-to-primary key matches,
which is undoubtedly the most common type of join condition.
