  Querying a relational database is difficult because it requires users to know
both the SQL language and be familiar with the schema. On the other hand, many
users possess enough domain familiarity or expertise to describe their desired
queries by alternative means. For such users, two major alternatives to writing
SQL are natural language interfaces (NLIs) and programming-by-example (PBE).
Both of these alternatives face certain pitfalls: natural language queries
(NLQs) are often ambiguous, even for human interpreters, while current PBE
approaches require either low-complexity queries, user schema knowledge, exact
example tuples from the user, or a closed-world assumption to be tractable.
Consequently, we propose dual-specification query synthesis, which consumes
both a NLQ and an optional PBE-like table sketch query that enables users to
express varied levels of domain-specific knowledge. We introduce the novel
dual-specification Duoquest system, which leverages guided partial query
enumeration to efficiently explore the space of possible queries. We present
results from user studies in which Duoquest demonstrates a 62.5% absolute
increase in query construction accuracy over a state-of-the-art NLI and
comparable accuracy to a PBE system on a more limited workload supported by the
PBE system. In a simulation study on the prominent Spider benchmark, Duoquest
demonstrates a >2x increase in top-1 accuracy over both NLI and PBE.
