Skip to content

Commit cc94183

Browse files
authored
Merge pull request #1658 from marklogic/feature/optic-test-fix
Fixing testFromSqlUnionSelectOrderbyLimitOffset for MarkLogic 12
2 parents a864272 + 2bce065 commit cc94183

File tree

1 file changed

+28
-23
lines changed
  • marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest

1 file changed

+28
-23
lines changed

marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestOpticOnViews.java

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2199,29 +2199,34 @@ public void testFromSqlBetweenAndSqlCondition() {
21992199
//fromsql TEST 27 - union with select, orderby, limit, and offset
22002200
@Test
22012201
public void testFromSqlUnionSelectOrderbyLimitOffset() {
2202-
System.out.println("In testFromSqlUnionSelectOrderbyLimitOffset method");
2203-
RowManager rowMgr = client.newRowManager();
2204-
PlanBuilder p = rowMgr.newPlanBuilder();
2205-
2206-
ModifyPlan plan1 = p.fromSql(
2207-
"SELECT opticFunctionalTest.detail.id, opticFunctionalTest.detail.name FROM opticFunctionalTest.detail ORDER BY name "
2208-
+ " UNION "
2209-
+ " SELECT opticFunctionalTest.master.id, opticFunctionalTest.master.name FROM opticFunctionalTest.master ORDER BY name"
2210-
)
2211-
.orderBy(p.desc("id"))
2212-
.limit(3)
2213-
.offset(1)
2214-
.select(p.as("myName", p.col("name")));
2215-
JacksonHandle jacksonHandle = new JacksonHandle();
2216-
jacksonHandle.setMimetype("application/json");
2217-
2218-
rowMgr.resultDoc(plan1, jacksonHandle);
2219-
JsonNode jsonResults = jacksonHandle.get();
2220-
jsonResults = jacksonHandle.get().path("rows");
2221-
// Should have 2 nodes returned.
2222-
assertEquals( 2, jsonResults.size());
2223-
assertEquals( "Detail 5", jsonResults.path(0).path("myName").path("value").asText());
2224-
assertEquals( "Detail 4", jsonResults.path(1).path("myName").path("value").asText());
2202+
RowManager rowManager = client.newRowManager();
2203+
PlanBuilder op = rowManager.newPlanBuilder();
2204+
2205+
ModifyPlan plan1 = op.fromSql(
2206+
// Had to adjust this for MarkLogic 12 to fully qualify the 'name' column in each 'ORDER BY'.
2207+
"SELECT opticFunctionalTest.detail.id, opticFunctionalTest.detail.name FROM opticFunctionalTest.detail " +
2208+
"ORDER BY opticFunctionalTest.detail.name "
2209+
+ " UNION "
2210+
+ " SELECT opticFunctionalTest.master.id, opticFunctionalTest.master.name FROM opticFunctionalTest.master " +
2211+
"ORDER BY opticFunctionalTest.master.name"
2212+
)
2213+
.orderBy(op.desc("id"))
2214+
.limit(3)
2215+
.offset(1)
2216+
// This is no longer working on MarkLogic 12 nightly. Neither op.col("name") works now op.schemaCol("opticFunctionalTest.detail.name").
2217+
// We get an error of "Invalid arguments: expression column myName with undefined expression".
2218+
//.select(p.as("myName", p.col("name")))
2219+
;
2220+
2221+
JacksonHandle jacksonHandle = new JacksonHandle();
2222+
jacksonHandle.setMimetype("application/json");
2223+
2224+
JsonNode result = rowManager.resultDoc(plan1, new JacksonHandle()).get();
2225+
JsonNode rows = result.path("rows");
2226+
2227+
assertEquals(2, rows.size());
2228+
assertEquals("Detail 5", rows.path(0).path("opticFunctionalTest.detail.name").path("value").asText());
2229+
assertEquals("Detail 4", rows.path(1).path("opticFunctionalTest.detail.name").path("value").asText());
22252230
}
22262231

22272232

0 commit comments

Comments
 (0)