Skip to content

Method fromTriples(PlanTriplePatternSeq, String, SemStoreExpr, PlanTripleOptions) is ambiguous for the type PlanBuilder #537

@georgeajit

Description

@georgeajit

For the following test code snippet, we are seeing the ambiguous error message.

public void testJoinInnerWithSemStore() throws KeyManagementException, NoSuchAlgorithmException, IOException,  SAXException, ParserConfigurationException
	{
		System.out.println("In testJoinInnerWithSemStore method");
		
		// Create a new Plan.
		RowManager rowMgr = client.newRowManager();
		PlanBuilder p = rowMgr.newPlanBuilder();
		PlanBuilder.Prefixer  bb = p.prefixer("http://marklogic.com/baseball/players");
		PlanBuilder.Prefixer tm = p.prefixer("http://marklogic.com/mlb/team/");

		PlanColumn playerAgeCol = p.col("player_age");
		PlanColumn playerIdCol = p.col("player_id");
		PlanColumn playerNameCol = p.col("player_name");
		PlanColumn playerTeamCol = p.col("player_team");

		PlanSystemColumn playerGraphCol = p.graphCol("graphUri");

		PlanColumn teamIdCol = p.col("player_team");
		PlanColumn teamNameCol = p.col("team_name");
		PlanColumn teamCityCol = p.col("team_city");
		
		PlanTriplePatternSeq patPlayerSeq = p.patterns(p.pattern(playerIdCol, bb.iri("age"), playerAgeCol, playerGraphCol),
				p.pattern(playerIdCol, bb.iri("name"), playerNameCol),
				p.pattern(playerIdCol, bb.iri("team"), playerTeamCol)
				);
		 
		ModifyPlan player_plan = p.fromTriples(patPlayerSeq, null, p.sem.store("/optic/player/triple/test", "/optic/team/triple/test"), 
				                               p.tripleOptions(PlanBuilder.PlanTriples.DEDUPLICATED));
		
		PlanTriplePatternSeq patTeamSeq = p.patterns(p.pattern(teamIdCol, tm.iri("name"), teamNameCol),
                                                     p.pattern(teamIdCol, tm.iri("city"), teamCityCol)
				                                    );	
		ModifyPlan team_plan = p.fromTriples(patTeamSeq,
                                             null,
                                             null,
                                             p.tripleOptions(PlanBuilder.PlanTriples.DEDUPLICATED)
                                             );
      
		ModifyPlan output = player_plan.joinInner(team_plan)
                                       .where(p.eq(teamNameCol, p.xs.string("Giants")))
                                       .orderBy(p.asc(playerAgeCol))
                                       .select(
                                               p.as("PlayerName", playerNameCol), 
                                               p.as("PlayerAge", playerAgeCol), 
                                               p.as("TeamName", p.fn.concat(teamCityCol, p.xs.string(" "), teamNameCol)),
                                               p.as("PlayerGraph", playerGraphCol));
		JacksonHandle jacksonHandle = new JacksonHandle();
		jacksonHandle.setMimetype("application/json");

		rowMgr.resultDoc(output, jacksonHandle);
		JsonNode jsonResults = jacksonHandle.get().path("rows");
		
		// Should have 3 nodes returned.		
		assertEquals("Three nodes not returned from testJoinInnerWithGraphIRI method ", 3, jsonResults.size());
		assertEquals("Row 1 PlayerName value incorrect", "Juan Leone", jsonResults.get(0).path("PlayerName").path("value").asText());
		assertEquals("Row 1 PlayerAge value incorrect", "27", jsonResults.get(0).path("PlayerAge").path("value").asText());
		assertEquals("Row 1 TeamName value incorrect", "San Francisco Giants", jsonResults.get(0).path("TeamName").path("value").asText());
		assertEquals("Row 1 GraphName value incorrect", "/optic/player/triple/test", jsonResults.get(0).path("GraphName").path("value").asText());  
	}

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions