diff --git a/bin/macrodiff b/bin/macrobase-sql similarity index 89% rename from bin/macrodiff rename to bin/macrobase-sql index 001734df8..24bd9a6ee 100755 --- a/bin/macrodiff +++ b/bin/macrobase-sql @@ -1,7 +1,7 @@ #!/usr/bin/env bash BIN=`dirname "$0"` -BASE=$BIN/../repl +BASE=$BIN/../sql java -Xmx4g -cp "$BASE/target/classes:$BASE/target/*" \ edu.stanford.futuredata.macrobase.sql.MacrobaseSQLRepl "$@" diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 47c8d7256..62be3dfba 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -7,7 +7,7 @@ pages: - 'Tutorial': 'user-guide/tutorial.md' - 'Common Parameters': 'user-guide/parameters.md' - 'Advanced Configuration': 'user-guide/advanced-configuration.md' - - 'MacroDiff': 'user-guide/macrodiff.md' + - 'MacroBase SQL': 'user-guide/sql.md' theme: name: 'readthedocs' diff --git a/docs/source/user-guide/macrodiff.md b/docs/source/user-guide/macrodiff.md deleted file mode 100644 index 02e598a30..000000000 --- a/docs/source/user-guide/macrodiff.md +++ /dev/null @@ -1,50 +0,0 @@ -## MacroDiff - -MacroDiff is MacroBase-on-SQL: you can write your MacroBase jobs as SQL queries -from the command line, using our custom shell. This enables interactive -exploration of your data using our MacroBase operators. - -## New SQL Operators - -To MacroBase queries in SQL, we've extend the standard SQL syntax to include two new operators: `DIFF` and `COMPARE BY`. - -- `DIFF` takes in two relations as arguments: the first relation is the **outliers** relation, while the second is the **inliers** relation. This represents the classification stage of the MacroBase pipeline. - - The `DIFF` operator also requires you to specify which attributes you want to consider for explanations. This is done using the `ON` keyword in SQL. -- `COMPARE BY` specifies a **ratio metric function**, such as `risk_ratio`, `pmi`, or `prevalence_ratio`. Users must also specify an **aggregation function** (such as `COUNT`, or `AVG`) that takes a column (or multiple columns) as an argument. -- You can also specify an optional keyword called `MAX COMBO`, that specifies the maximum order you want for the generated explanations, e.g. `MAX COMBO [number]`. - -Overall, our syntax looks like this end-to-end: -```sql -SELECT * FROM - DIFF - { ( (, ) | ) } -ON -{ ,…, | * } -COMPARE BY -{ (( | *)) [ AS ] } -[ MAX COMBO ] -[ WHERE { | SUPPORT } ] -[ ORDER BY ( ASC | DESC) } -[ LIMIT ]; -``` -### Building MacroDiff - -MacroDiff depends on `macrobase-lib`, so build and install the `lib/` directory if you haven't already: `cd lib && mvn install && cd -`. Then build `macrobase-repl`: `cd repl && mvn package && cd -`. - -### Launching MacroDiff - -To run MacroDiff, run `bin/macrodiff.sh`. You can also import a .sql file with pre-written SQL queries; just run `bin/macrodiff.sh -f [path/to/file]`. - -You should see this: - -``` -Welcome to - __ ___ ____ _ ________ - / |/ /___ _______________ / __ \(_) __/ __/ - / /|_/ / __ `/ ___/ ___/ __ \/ / / / / /_/ /_ - / / / / /_/ / /__/ / / /_/ / /_/ / / __/ __/ -/_/ /_/\__,_/\___/_/ \____/_____/_/_/ /_/ - -macrodiff> -``` - diff --git a/docs/source/user-guide/sql.md b/docs/source/user-guide/sql.md new file mode 100644 index 000000000..576e96e86 --- /dev/null +++ b/docs/source/user-guide/sql.md @@ -0,0 +1,199 @@ +# MacroBase SQL + +In addition to the UI and Java API, you can also write your MacroBase jobs as +SQL queries from the command line, using our custom shell. This enables +interactive exploration of your data using our MacroBase operators. + +## New SQL Operator: DIFF + +To extend MacroBase queries in SQL, we've extend the standard SQL syntax to +include our own operator, called `DIFF`. + +### DIFF Inputs + +- `DIFF` takes in two relations as arguments: the first relation is the + **outliers** relation, while the second is the **inliers** relation. This + represents the classification stage of the MacroBase pipeline. Important: + both relations must share the same schema! + +- The `DIFF` operator also requires you to specify which columns in the given + table you want to consider for explanations. This is done using the `ON` + keyword in SQL; `ON location, version, hw_model` means that MacroBase will + use those three columns for explanation generation. If you want to consider + all possible columns, use `ON *`. + +- `COMPARE BY` specifies a **ratio metric function**, such as `risk_ratio`, + `global_ratio`, or `prevalence_ratio`. Users must also specify an **aggregation + function** (such as `COUNT`, or `AVG`) that takes a column (or multiple + columns) as an argument. + +- You can also specify an optional keyword called `MAX COMBO`, that specifies + the maximum order you want for your generated explanations (`MAX COMBO [number]`). + +- Remember: a `DIFF` query is just SQL! So you can include any other standard + SQL clause: you can add `WHERE` clauses, `ORDER BY`s, and `LIMIT`s, for + example. (`GROUP BY` and `HAVING` is not yet supported.) For example, if you + want to prune out results with low support (e.g., 0.2), simply add `WHERE support > 0.2` + to your SQL query. (By default, DIFF queries prune out all + results with support less than 0.2, and ratios less than 1.5.) + +#### Summary +Overall, the formal definition of a `DIFF` query looks something like this: +```sql +SELECT ,..., +FROM DIFF (, ) +ON { ,..., | * } +COMPARE BY { (( | *)) } +[ MAX COMBO ] +[ WHERE ] +[ ORDER BY ( ASC | DESC) } +[ LIMIT { | ALL } ]; +``` + +### DIFF Output + +In order for MacroBase to compatible with traditional SQL queries, the `DIFF` +operator has to be _composable_---it has to seamlessly integrate with other SQL +commands. (This is because SQL is fundamentally a [relational +algebra](https://en.wikipedia.org/wiki/Relational_algebra), except that it +operates on multi-sets instead of sets.) + +This means that the `DIFF` operator has to output a relation, just like the +output of any other SQL operator: a `SELECT`, a `WHERE`, a `JOIN`, or a `GROUP BY` +always outputs a relation, so that users can layer additional queries or +clauses downstream. The `DIFF` operator does, in fact, output a relation---it +outputs the columns specified in the `ON` clause, plus three additional +columns: the ratio column, the **support** column, and the outlier counts +column. + +For example, suppose we ran the following SQL query in Macrobase-SQL: + +```sql +SELECT * FROM + DIFF + (SELECT * FROM sample WHERE usage > 1000.0) outliers, + (SELECT * FROM sample WHERE usage < 1000.0) inliers + ON + location, version + COMPARE BY + risk_ratio(COUNT(*)) ORDER BY support; +``` + +Then, the output of that query will look something like this: + +``` +------------------------------------------------------------------------------------------- +| location | version | risk_ratio | support | outlier_count | +------------------------------------------------------------------------------------------- +| CAN | v2 | 1.5173 | .210526 | 8.0 | +| null | v1 | 10.456989 | .789474 | 30.0 | +| CAN | v1 | 46.424051 | .789474 | 30.0 | +| CAN | null | ∞ | 1.0 | 38.0 | +------------------------------------------------------------------------------------------- +``` + +Here, the `null` values correspond to an explanation that does not include a +value for that particular column; if you've written `GROUP BY` or `CUBE` +queries in SQL, these `nulll`s mean the exact same thing. (In database +parlance, the inclusion of these `null`s means we are returning a normalized +relation.) For example, the last row in the output above is examining the +explanation results for `location=CAN`; the row immediately above examines the +results for `location=CAN && version=v1`. + + +## Building MacroBase SQL + +MacroBase-SQL depends on `macrobase-lib`, so build and install the `lib/` +directory if you haven't already: `cd lib && mvn install && cd -`. Then build +`macrobase-sql`: `cd sql && mvn package && cd -`. + +## Running Macrobase SQL + +To run MacroBase-SQL, run `bin/macrobase-sql`. You can also import a .sql file +with pre-written SQL queries; just run `bin/macrobase-sql -f [path/to/file]`. + +You should see this: + +``` +Welcome to + __ ___ ____ + / |/ /___ _______________ / __ )____ _________ + / /|_/ / __ `/ ___/ ___/ __ \/ __ / __ `/ ___/ _ \ + / / / / /_/ / /__/ / / /_/ / /_/ / /_/ (__ ) __/ +/_/ /_/\__,_/\___/_/ \____/_____/\__,_/____/\___/ + +macrobase-sql> +``` + +### Demo + +If you run the `bin/macrobase-sql -f sql/demo.sql`, you should see the following output: + +``` +Welcome to + __ ___ ____ + / |/ /___ _______________ / __ )____ _________ + / /|_/ / __ `/ ___/ ___/ __ \/ __ / __ `/ ___/ _ \ + / / / / /_/ / /__/ / / /_/ / /_/ / /_/ (__ ) __/ +/_/ /_/\__,_/\___/_/ \____/_____/\__,_/____/\___/ + + +IMPORT FROM CSV FILE 'core/demo/sample.csv' INTO sample(usage double, latency double, location string, version string); + +1057 rows +----------------------------------------------------- +| usage | latency | location | version | +----------------------------------------------------- +| 30.77 | 238.0 | CAN | v2 | +| 31.28 | 611.0 | CAN | v2 | +| 31.17 | 768.0 | RUS | v4 | +| 30.94 | 192.0 | AUS | v3 | +| 35.36 | 401.0 | UK | v3 | +| 39.12 | 531.0 | RUS | v4 | +| 33.9 | 223.0 | UK | v3 | +... +| 1000.77 | 864.0 | CAN | v2 | +| 1000.77 | 864.0 | CAN | v2 | +| 1000.77 | 864.0 | CAN | v2 | +| 1000.77 | 864.0 | CAN | v2 | +| 1000.77 | 864.0 | CAN | v2 | +| 1000.77 | 864.0 | CAN | v2 | +| 1000.77 | 864.0 | CAN | v2 | +----------------------------------------------------- + +SELECT * FROM + DIFF + (SELECT * FROM sample WHERE usage > 1000.0) outliers, + (SELECT * FROM sample WHERE usage < 1000.0) inliers + ON + location, version + COMPARE BY + risk_ratio(COUNT(*)) ORDER BY support; + +4 rows +------------------------------------------------------------------------------------------- +| location | version | risk_ratio | support | outlier_count | +------------------------------------------------------------------------------------------- +| CAN | v2 | 1.5173 | .210526 | 8.0 | +| null | v1 | 10.456989 | .789474 | 30.0 | +| CAN | v1 | 46.424051 | .789474 | 30.0 | +| CAN | null | ∞ | 1.0 | 38.0 | +------------------------------------------------------------------------------------------- + +SELECT * FROM + DIFF + (SELECT * FROM sample WHERE usage > 1000.0) outliers, + (SELECT * FROM sample WHERE usage < 1000.0) inliers + ON + location, version + COMPARE BY + global_ratio(COUNT(*)) WHERE global_ratio > 10.0; + +1 row +------------------------------------------------------------------------------------------- +| location | version | global_ratio | support | outlier_count | +------------------------------------------------------------------------------------------- +| CAN | v1 | 10.562958 | .789474 | 30.0 | +------------------------------------------------------------------------------------------- + +``` diff --git a/lib/src/main/java/edu/stanford/futuredata/macrobase/datamodel/DataFrame.java b/lib/src/main/java/edu/stanford/futuredata/macrobase/datamodel/DataFrame.java index 60c98f782..2c282e7be 100644 --- a/lib/src/main/java/edu/stanford/futuredata/macrobase/datamodel/DataFrame.java +++ b/lib/src/main/java/edu/stanford/futuredata/macrobase/datamodel/DataFrame.java @@ -117,7 +117,7 @@ public String toString() { * @param maxNumToPrint maximum number of rows from the DataFrame to print */ public void prettyPrint(final int maxNumToPrint) { - System.out.println(numRows + (numRows == 1 ? "row" : " rows")); + System.out.println(numRows + (numRows == 1 ? " row" : " rows")); final int maxColNameLength = schema.getColumnNames().stream() .reduce("", (x, y) -> x.length() > y.length() ? x : y).length() + 4; // 2 extra spaces on both sides diff --git a/pom.xml b/pom.xml index b24f7c051..435434499 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ legacy frontend - repl + sql lib core diff --git a/repl/demo.sql b/sql/demo.sql similarity index 100% rename from repl/demo.sql rename to sql/demo.sql diff --git a/repl/intellij-java-google-style.xml b/sql/intellij-java-google-style.xml similarity index 100% rename from repl/intellij-java-google-style.xml rename to sql/intellij-java-google-style.xml diff --git a/repl/load.sql b/sql/load.sql similarity index 100% rename from repl/load.sql rename to sql/load.sql diff --git a/repl/mobile_data_demo.sql b/sql/mobile_data_demo.sql similarity index 100% rename from repl/mobile_data_demo.sql rename to sql/mobile_data_demo.sql diff --git a/repl/pom.xml b/sql/pom.xml similarity index 100% rename from repl/pom.xml rename to sql/pom.xml diff --git a/repl/src/main/antlr4/edu/stanford/futuredata/macrobase/SqlBase.g4 b/sql/src/main/antlr4/edu/stanford/futuredata/macrobase/SqlBase.g4 similarity index 100% rename from repl/src/main/antlr4/edu/stanford/futuredata/macrobase/SqlBase.g4 rename to sql/src/main/antlr4/edu/stanford/futuredata/macrobase/SqlBase.g4 diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/Diff.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/Diff.java similarity index 99% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/Diff.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/Diff.java index e8ca6da6f..f913d872f 100644 --- a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/Diff.java +++ b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/Diff.java @@ -34,7 +34,7 @@ public static DataFrame diff(final DataFrame outliers, final DataFrame inliers, summarizer.setAttributes(cols); summarizer.setRatioMetric(ExplanationMetric.getMetricFn(ratioMetricStr)); summarizer.setMinSupport(0.2); // TODO: - summarizer.setMinRatioMetric(2.0); // TODO: + summarizer.setMinRatioMetric(1.5); // TODO: summarizer.process(combined); final APExplanation explanations = summarizer.getResults(); diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/ExpressionFormatter.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/ExpressionFormatter.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/ExpressionFormatter.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/ExpressionFormatter.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/MacrobaseSQLRepl.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/MacrobaseSQLRepl.java similarity index 98% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/MacrobaseSQLRepl.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/MacrobaseSQLRepl.java index f6830cae8..8f6ec28be 100644 --- a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/MacrobaseSQLRepl.java +++ b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/MacrobaseSQLRepl.java @@ -109,7 +109,7 @@ private void runRepl() throws IOException { } private String readConsoleInput() throws IOException { - reader.setPrompt("macrodiff> "); + reader.setPrompt("macrobase-sql> "); String line = reader.readLine(); if (line == null || line.equalsIgnoreCase("quit") || line.equalsIgnoreCase("exit")) { return ""; @@ -127,7 +127,7 @@ private String readConsoleInput() throws IOException { commandBuilder.append("\n"); commandBuilder.append(line); } - reader.setPrompt("macrodiff> "); + reader.setPrompt("macrobase-sql> "); return commandBuilder.toString(); } diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/QueryEngine.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/QueryEngine.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/QueryEngine.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/QueryEngine.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/QueryUtil.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/QueryUtil.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/QueryUtil.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/QueryUtil.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/ReservedIdentifiers.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/ReservedIdentifiers.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/ReservedIdentifiers.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/ReservedIdentifiers.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/SqlFormatter.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/SqlFormatter.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/SqlFormatter.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/SqlFormatter.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/TreePrinter.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/TreePrinter.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/TreePrinter.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/TreePrinter.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/UpperCaseCharStream.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/UpperCaseCharStream.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/UpperCaseCharStream.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/UpperCaseCharStream.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/AstBuilder.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/AstBuilder.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/AstBuilder.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/AstBuilder.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/CaseInsensitiveStream.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/CaseInsensitiveStream.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/CaseInsensitiveStream.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/CaseInsensitiveStream.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/DelimiterLexer.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/DelimiterLexer.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/DelimiterLexer.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/DelimiterLexer.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/IdentifierSymbol.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/IdentifierSymbol.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/IdentifierSymbol.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/IdentifierSymbol.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/ParsingException.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/ParsingException.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/ParsingException.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/ParsingException.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/SqlParser.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/SqlParser.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/SqlParser.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/SqlParser.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/SqlParserOptions.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/SqlParserOptions.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/SqlParserOptions.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/SqlParserOptions.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/StatementSplitter.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/StatementSplitter.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/StatementSplitter.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/parser/StatementSplitter.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/testing/TreeAssertions.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/testing/TreeAssertions.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/testing/TreeAssertions.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/testing/TreeAssertions.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AddColumn.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AddColumn.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AddColumn.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AddColumn.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Aggregate.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Aggregate.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Aggregate.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Aggregate.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AggregateExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AggregateExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AggregateExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AggregateExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AliasedRelation.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AliasedRelation.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AliasedRelation.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AliasedRelation.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AllColumns.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AllColumns.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AllColumns.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AllColumns.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArithmeticBinaryExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArithmeticBinaryExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArithmeticBinaryExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArithmeticBinaryExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArithmeticUnaryExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArithmeticUnaryExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArithmeticUnaryExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArithmeticUnaryExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArrayConstructor.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArrayConstructor.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArrayConstructor.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ArrayConstructor.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AstVisitor.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AstVisitor.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AstVisitor.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AstVisitor.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AtTimeZone.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AtTimeZone.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AtTimeZone.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/AtTimeZone.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BetweenPredicate.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BetweenPredicate.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BetweenPredicate.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BetweenPredicate.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BinaryLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BinaryLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BinaryLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BinaryLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BindExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BindExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BindExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BindExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BooleanLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BooleanLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BooleanLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/BooleanLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Call.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Call.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Call.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Call.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CallArgument.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CallArgument.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CallArgument.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CallArgument.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Cast.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Cast.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Cast.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Cast.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CharLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CharLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CharLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CharLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CoalesceExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CoalesceExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CoalesceExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CoalesceExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ColumnDefinition.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ColumnDefinition.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ColumnDefinition.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ColumnDefinition.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Commit.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Commit.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Commit.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Commit.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ComparisonExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ComparisonExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ComparisonExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ComparisonExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ComparisonExpressionType.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ComparisonExpressionType.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ComparisonExpressionType.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ComparisonExpressionType.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateSchema.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateSchema.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateSchema.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateSchema.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateTable.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateTable.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateTable.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateTable.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateTableAsSelect.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateTableAsSelect.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateTableAsSelect.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateTableAsSelect.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateView.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateView.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateView.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CreateView.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Cube.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Cube.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Cube.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Cube.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CurrentTime.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CurrentTime.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CurrentTime.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/CurrentTime.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Deallocate.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Deallocate.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Deallocate.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Deallocate.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DecimalLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DecimalLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DecimalLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DecimalLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DefaultExpressionTraversalVisitor.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DefaultExpressionTraversalVisitor.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DefaultExpressionTraversalVisitor.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DefaultExpressionTraversalVisitor.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DefaultTraversalVisitor.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DefaultTraversalVisitor.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DefaultTraversalVisitor.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DefaultTraversalVisitor.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Delete.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Delete.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Delete.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Delete.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DereferenceExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DereferenceExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DereferenceExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DereferenceExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DescribeInput.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DescribeInput.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DescribeInput.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DescribeInput.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DescribeOutput.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DescribeOutput.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DescribeOutput.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DescribeOutput.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DiffQuerySpecification.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DiffQuerySpecification.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DiffQuerySpecification.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DiffQuerySpecification.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DoubleLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DoubleLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DoubleLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DoubleLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropColumn.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropColumn.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropColumn.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropColumn.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropSchema.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropSchema.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropSchema.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropSchema.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropTable.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropTable.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropTable.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropTable.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropView.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropView.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropView.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/DropView.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Except.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Except.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Except.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Except.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Execute.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Execute.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Execute.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Execute.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExistsPredicate.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExistsPredicate.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExistsPredicate.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExistsPredicate.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Explain.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Explain.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Explain.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Explain.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainFormat.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainFormat.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainFormat.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainFormat.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainOption.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainOption.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainOption.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainOption.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainType.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainType.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainType.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExplainType.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Expression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Expression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Expression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Expression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExpressionRewriter.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExpressionRewriter.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExpressionRewriter.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExpressionRewriter.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExpressionTreeRewriter.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExpressionTreeRewriter.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExpressionTreeRewriter.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ExpressionTreeRewriter.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Extract.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Extract.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Extract.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Extract.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FieldReference.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FieldReference.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FieldReference.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FieldReference.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FrameBound.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FrameBound.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FrameBound.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FrameBound.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FunctionCall.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FunctionCall.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FunctionCall.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/FunctionCall.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GenericLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GenericLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GenericLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GenericLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Grant.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Grant.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Grant.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Grant.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupBy.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupBy.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupBy.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupBy.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingElement.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingElement.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingElement.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingElement.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingOperation.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingOperation.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingOperation.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingOperation.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingSets.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingSets.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingSets.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/GroupingSets.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Identifier.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Identifier.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Identifier.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Identifier.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IfExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IfExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IfExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IfExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ImportCsv.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ImportCsv.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ImportCsv.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ImportCsv.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/InListExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/InListExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/InListExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/InListExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/InPredicate.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/InPredicate.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/InPredicate.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/InPredicate.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Insert.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Insert.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Insert.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Insert.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Intersect.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Intersect.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Intersect.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Intersect.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IntervalLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IntervalLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IntervalLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IntervalLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IsNotNullPredicate.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IsNotNullPredicate.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IsNotNullPredicate.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IsNotNullPredicate.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IsNullPredicate.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IsNullPredicate.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IsNullPredicate.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/IsNullPredicate.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Isolation.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Isolation.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Isolation.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Isolation.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Join.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Join.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Join.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Join.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinCriteria.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinCriteria.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinCriteria.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinCriteria.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinOn.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinOn.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinOn.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinOn.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinUsing.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinUsing.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinUsing.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/JoinUsing.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LambdaArgumentDeclaration.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LambdaArgumentDeclaration.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LambdaArgumentDeclaration.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LambdaArgumentDeclaration.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LambdaExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LambdaExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LambdaExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LambdaExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Lateral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Lateral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Lateral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Lateral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LikeClause.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LikeClause.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LikeClause.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LikeClause.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LikePredicate.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LikePredicate.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LikePredicate.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LikePredicate.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Literal.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Literal.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Literal.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Literal.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LogicalBinaryExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LogicalBinaryExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LogicalBinaryExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LogicalBinaryExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LongLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LongLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LongLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/LongLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NaturalJoin.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NaturalJoin.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NaturalJoin.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NaturalJoin.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Node.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Node.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Node.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Node.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NodeLocation.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NodeLocation.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NodeLocation.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NodeLocation.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NodeRef.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NodeRef.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NodeRef.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NodeRef.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NotExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NotExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NotExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NotExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NullIfExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NullIfExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NullIfExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NullIfExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NullLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NullLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NullLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/NullLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/OrderBy.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/OrderBy.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/OrderBy.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/OrderBy.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Parameter.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Parameter.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Parameter.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Parameter.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Prepare.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Prepare.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Prepare.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Prepare.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Property.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Property.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Property.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Property.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QualifiedName.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QualifiedName.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QualifiedName.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QualifiedName.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QuantifiedComparisonExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QuantifiedComparisonExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QuantifiedComparisonExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QuantifiedComparisonExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Query.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Query.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Query.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Query.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QueryBody.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QueryBody.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QueryBody.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QueryBody.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QuerySpecification.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QuerySpecification.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QuerySpecification.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/QuerySpecification.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RatioMetricExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RatioMetricExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RatioMetricExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RatioMetricExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Relation.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Relation.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Relation.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Relation.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameColumn.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameColumn.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameColumn.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameColumn.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameSchema.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameSchema.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameSchema.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameSchema.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameTable.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameTable.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameTable.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/RenameTable.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ResetSession.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ResetSession.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ResetSession.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ResetSession.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Revoke.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Revoke.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Revoke.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Revoke.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Rollback.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Rollback.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Rollback.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Rollback.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Rollup.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Rollup.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Rollup.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Rollup.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Row.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Row.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Row.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Row.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SampledRelation.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SampledRelation.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SampledRelation.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SampledRelation.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SearchedCaseExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SearchedCaseExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SearchedCaseExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SearchedCaseExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Select.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Select.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Select.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Select.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SelectItem.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SelectItem.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SelectItem.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SelectItem.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SetOperation.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SetOperation.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SetOperation.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SetOperation.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SetSession.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SetSession.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SetSession.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SetSession.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowCatalogs.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowCatalogs.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowCatalogs.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowCatalogs.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowColumns.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowColumns.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowColumns.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowColumns.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowCreate.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowCreate.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowCreate.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowCreate.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowFunctions.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowFunctions.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowFunctions.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowFunctions.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowGrants.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowGrants.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowGrants.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowGrants.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowPartitions.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowPartitions.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowPartitions.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowPartitions.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowSchemas.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowSchemas.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowSchemas.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowSchemas.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowSession.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowSession.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowSession.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowSession.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowStats.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowStats.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowStats.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowStats.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowTables.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowTables.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowTables.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/ShowTables.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SimpleCaseExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SimpleCaseExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SimpleCaseExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SimpleCaseExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SimpleGroupBy.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SimpleGroupBy.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SimpleGroupBy.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SimpleGroupBy.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SingleColumn.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SingleColumn.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SingleColumn.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SingleColumn.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SortItem.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SortItem.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SortItem.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SortItem.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StackableAstVisitor.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StackableAstVisitor.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StackableAstVisitor.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StackableAstVisitor.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StartTransaction.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StartTransaction.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StartTransaction.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StartTransaction.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Statement.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Statement.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Statement.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Statement.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StringLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StringLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StringLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/StringLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SubqueryExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SubqueryExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SubqueryExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SubqueryExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SubscriptExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SubscriptExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SubscriptExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SubscriptExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SymbolReference.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SymbolReference.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SymbolReference.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/SymbolReference.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Table.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Table.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Table.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Table.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TableElement.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TableElement.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TableElement.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TableElement.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TableSubquery.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TableSubquery.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TableSubquery.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TableSubquery.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TimeLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TimeLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TimeLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TimeLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TimestampLiteral.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TimestampLiteral.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TimestampLiteral.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TimestampLiteral.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TransactionAccessMode.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TransactionAccessMode.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TransactionAccessMode.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TransactionAccessMode.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TransactionMode.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TransactionMode.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TransactionMode.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TransactionMode.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TryExpression.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TryExpression.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TryExpression.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/TryExpression.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Union.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Union.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Union.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Union.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Unnest.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Unnest.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Unnest.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Unnest.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Use.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Use.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Use.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Use.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Values.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Values.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Values.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Values.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WhenClause.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WhenClause.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WhenClause.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WhenClause.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Window.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Window.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Window.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/Window.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WindowFrame.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WindowFrame.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WindowFrame.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WindowFrame.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/With.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/With.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/With.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/With.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WithQuery.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WithQuery.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WithQuery.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/tree/WithQuery.java diff --git a/repl/src/main/java/edu/stanford/futuredata/macrobase/sql/util/AstUtils.java b/sql/src/main/java/edu/stanford/futuredata/macrobase/sql/util/AstUtils.java similarity index 100% rename from repl/src/main/java/edu/stanford/futuredata/macrobase/sql/util/AstUtils.java rename to sql/src/main/java/edu/stanford/futuredata/macrobase/sql/util/AstUtils.java diff --git a/repl/src/main/resources/ascii_art.txt b/sql/src/main/resources/ascii_art.txt similarity index 100% rename from repl/src/main/resources/ascii_art.txt rename to sql/src/main/resources/ascii_art.txt diff --git a/repl/src/main/resources/log4j.properties b/sql/src/main/resources/log4j.properties similarity index 100% rename from repl/src/main/resources/log4j.properties rename to sql/src/main/resources/log4j.properties