Building PDQ from
- MySQL 5.6 or higher. MySQL is used to
detect homomorphisms during chasing. This is optional but it is
recommended as it speeds up reasoning.
higher. You must install PostgreSQL if you wish to delegate plan cost
estimation or plan execution to this DBMS. Examples of cases that use use
PostgreSQL for cost estimation can be found here.
Both internal and external
dependencies are managed by Maven automatically through the pom.xml files.
These files can be found inside each project. However, if you wish to build the
projects outside Maven, consider the following dependencies
- pdq-cost: pdq-common project
- pdq-planner: pdq-common and
- pdq-runtime: pdq-common
pdq-regression: pdq-common, pdq-cost, pdq-planner and pdq-runtime projects
- pdq-common: junit-4.11,
log4j2-1.2, guava-16, commons-lang3-3.3.1, commons-collections4-4.0,
jgrapht-0.8.3, commons-io-2.4 mysql-connector-5.1.30, postgresql-9.1,
jersey-client-2.11, jackson-databind-2.2.3, javax.ws.api-2.0, jackson-jaxrs-json-provider-2.2.3,
- pdq-cost: junit-4.11,
log4j2-1.2, guava-16, commons-lang3-3.3.1, commons-collections4-4.0
- pdq-planner: derby-10.10,
- pdq-runtime: jcommander-1.35
The following instructions apply
when you use Maven as the build system.
Type under the top directory of
Two JARs will be built and placed
in the project's "target/" directory. Go to the "target/"
directory of the pdq-benchmark project. You will notice the following jar
pdq-project-<version>.jar, contains the
bytecode for the planner only, i.e., you need to make sure all dependencies are
on the CLASSPATH to run it.
fully self-contained and can be run directly both for planning and plan