From 78137026b732bd68548d1d9fbd9f571f8319cfee Mon Sep 17 00:00:00 2001 From: Daniel Halperin Date: Fri, 20 Mar 2015 11:03:14 -0700 Subject: [PATCH] MasterCatalog: populate language in querySimpleStatusHelper Related to ongoing work for uwescience/myria-web#265 --- .../coordinator/catalog/MasterCatalog.java | 3 +- .../coordinator/catalog/CatalogTest.java | 34 ++++++++++++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/edu/washington/escience/myria/coordinator/catalog/MasterCatalog.java b/src/edu/washington/escience/myria/coordinator/catalog/MasterCatalog.java index c56fe62b0..7be77fb24 100644 --- a/src/edu/washington/escience/myria/coordinator/catalog/MasterCatalog.java +++ b/src/edu/washington/escience/myria/coordinator/catalog/MasterCatalog.java @@ -1252,6 +1252,7 @@ private static QueryStatusEncoding querySimpleStatusHelper(final SQLiteStatement } } queryStatus.profilingMode = ImmutableList.copyOf(modes); + queryStatus.language = statement.columnString(9); return queryStatus; } @@ -1405,7 +1406,7 @@ public List getQueries(@Nullable final Long limit, @Nullabl } String selectClause = - "SELECT query_id,raw_query,submit_time,start_time,finish_time,elapsed_nanos,status,message,profiling_mode"; + "SELECT query_id,raw_query,submit_time,start_time,finish_time,elapsed_nanos,status,message,profiling_mode,language"; StringBuilder coreQuery = new StringBuilder(); Joiner.on(' ').appendTo(coreQuery, selectClause, fromClause); if (whereClause.size() > 0) { diff --git a/test/edu/washington/escience/myria/coordinator/catalog/CatalogTest.java b/test/edu/washington/escience/myria/coordinator/catalog/CatalogTest.java index a2d3fe7b7..90daa9c7c 100644 --- a/test/edu/washington/escience/myria/coordinator/catalog/CatalogTest.java +++ b/test/edu/washington/escience/myria/coordinator/catalog/CatalogTest.java @@ -260,7 +260,7 @@ public void testCatalogQuerySearch() throws CatalogException { * @throws CatalogException if there is an error creating the Catalog. */ @Test - public void testCatalogProfilingModeList() throws CatalogException { + public void testCatalogExtraFieldsList() throws CatalogException { /* Turn off SQLite logging, it's annoying. */ Logger.getLogger("com.almworks.sqlite4java").setLevel(Level.OFF); @@ -271,27 +271,44 @@ public void testCatalogProfilingModeList() throws CatalogException { /* Q1 */ query.rawQuery = "query 1"; query.logicalRa = ""; + query.language = "myrial"; catalog.newQuery(query); qs = catalog.getQuery(1L); assertEquals(qs.rawQuery, query.rawQuery); assertEquals(qs.logicalRa, query.logicalRa); assertEquals(qs.profilingMode, ImmutableList. of()); + assertEquals(qs.language, query.language); + /* Also test the getQueries() method of getting query info. */ + qs = catalog.getQueries(1L, 1L, null, null).get(0); + assertEquals(qs.rawQuery, query.rawQuery); + assertEquals(null, qs.logicalRa); + assertEquals(qs.profilingMode, ImmutableList. of()); + assertEquals(qs.language, query.language); /* Q2 */ query.rawQuery = "query 2"; query.logicalRa = ""; query.profilingMode = ImmutableList.of(ProfilingMode.QUERY); + query.language = "datalog"; catalog.newQuery(query); qs = catalog.getQuery(2L); assertEquals(qs.rawQuery, query.rawQuery); assertEquals(qs.logicalRa, query.logicalRa); assertEquals(ImmutableSet.copyOf(qs.profilingMode), ImmutableSet.copyOf(query.profilingMode)); + assertEquals(qs.language, query.language); + /* Also test the getQueries() method of getting query info. */ + qs = catalog.getQueries(1L, 2L, null, null).get(0); + assertEquals(qs.rawQuery, query.rawQuery); + assertEquals(null, qs.logicalRa); + assertEquals(ImmutableSet.copyOf(qs.profilingMode), ImmutableSet.copyOf(query.profilingMode)); + assertEquals(qs.language, query.language); /* Q3 */ query.rawQuery = "query 3"; query.logicalRa = ""; + query.language = null; query.profilingMode = ImmutableList.of(ProfilingMode.QUERY, ProfilingMode.RESOURCE); catalog.newQuery(query); @@ -299,16 +316,31 @@ public void testCatalogProfilingModeList() throws CatalogException { assertEquals(qs.rawQuery, query.rawQuery); assertEquals(qs.logicalRa, query.logicalRa); assertEquals(ImmutableSet.copyOf(qs.profilingMode), ImmutableSet.copyOf(query.profilingMode)); + assertEquals(qs.language, query.language); + /* Also test the getQueries() method of getting query info. */ + qs = catalog.getQueries(1L, 3L, null, null).get(0); + assertEquals(qs.rawQuery, query.rawQuery); + assertEquals(null, qs.logicalRa); + assertEquals(ImmutableSet.copyOf(qs.profilingMode), ImmutableSet.copyOf(query.profilingMode)); + assertEquals(qs.language, query.language); /* Q4 */ query.rawQuery = "query 4"; query.logicalRa = ""; query.profilingMode = ImmutableList.of(ProfilingMode.RESOURCE, ProfilingMode.QUERY); + query.language = "sql"; catalog.newQuery(query); qs = catalog.getQuery(4L); assertEquals(qs.rawQuery, query.rawQuery); assertEquals(qs.logicalRa, query.logicalRa); assertEquals(ImmutableSet.copyOf(qs.profilingMode), ImmutableSet.copyOf(query.profilingMode)); + assertEquals(qs.language, query.language); + /* Also test the getQueries() method of getting query info. */ + qs = catalog.getQueries(1L, 4L, null, null).get(0); + assertEquals(qs.rawQuery, query.rawQuery); + assertEquals(null, qs.logicalRa); + assertEquals(ImmutableSet.copyOf(qs.profilingMode), ImmutableSet.copyOf(query.profilingMode)); + assertEquals(qs.language, query.language); } }