Please see the project writeup for details.
- Run
./setup.sh
to download DuckDB and the workload. - Run
./optimize.sh ./workload.tgz output/
to compile and run the Calcite app. - Make your changes to
./calcite_app/src/main/java/edu/cmu/cs/db/calcite_app/app/App.java
.
From the calcite_app/
folder,
# Build the app into a JAR: ./build/libs/calcite_app-1.0-SNAPSHOT.jar
./gradlew build
# Build the app into a JAR with all dependencies: ./build/libs/calcite_app-1.0-SNAPSHOT-all.jar
./gradlew shadowJar
Now, you can invoke your app:
java -jar build/libs/calcite_app-1.0-SNAPSHOT-all.jar "SELECT 1"
You may find it more convenient to chain it together during development:
./gradlew shadowJar && java -jar build/libs/calcite_app-1.0-SNAPSHOT-all.jar "SELECT 1"
If gradle starts acting up, you can clear its cache:
./gradlew --stop
rm -rf ~/.gradle/caches/
Run make submit
to produce submission.zip
.
Upload the zip to Gradescope.