/**
*
*/
package edu.washington.escience.myria.operator;
import static org.junit.Assert.assertEquals;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import edu.washington.escience.myria.DbException;
import edu.washington.escience.myria.Schema;
import edu.washington.escience.myria.Type;
import edu.washington.escience.myria.api.encoding.QueryEncoding;
import edu.washington.escience.myria.coordinator.CatalogException;
import edu.washington.escience.myria.coordinator.MasterCatalog;
import edu.washington.escience.myria.storage.TupleBatch;
import edu.washington.escience.myria.util.TestEnvVars;
/**
*
*/
public class CatalogScanTest {
/**
* The catalog
*/
private MasterCatalog catalog;
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
/* Turn off SQLite logging, it's annoying. */
Logger.getLogger("com.almworks.sqlite4java").setLevel(Level.OFF);
catalog = MasterCatalog.createInMemory();
// add a query to the catalog
QueryEncoding query = new QueryEncoding();
query.rawQuery = "query 1 is about baseball";
query.logicalRa = "";
catalog.newQuery(query);
}
/**
* Destroy catalog.
*/
@After
public void Cleanup() {
catalog.close();
}
@Test
public final void testQueryQueries() throws DbException, CatalogException {
Schema schema = Schema.ofFields(Type.LONG_TYPE, "id", Type.STRING_TYPE, "raw");
CatalogQueryScan scan =
new CatalogQueryScan("select query_id, raw_query from queries", schema, catalog);
scan.open(TestEnvVars.get());
assertEquals(false, scan.eos());
TupleBatch tb = scan.nextReady();
assertEquals(false, scan.eos());
assertEquals(1, tb.numTuples());
assertEquals(schema, tb.getSchema());
tb = scan.nextReady();
assertEquals(true, scan.eos());
}
}