MARMOTTA-640: aliased NULL projections to avoid issues evaluating queries on h2
diff --git a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/builder/SQLBuilder.java b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/builder/SQLBuilder.java
index 9ae8927..9dc1426 100644
--- a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/builder/SQLBuilder.java
+++ b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/builder/SQLBuilder.java
@@ -614,8 +614,9 @@
Collections.sort(vars, SQLVariable.sparqlNameComparator);
for(SQLVariable v : vars) {
+ final String projectedName = v.getName();
if(v.getProjectionType() != ValueType.NONE && (projectedVars.isEmpty() || projectedVars.contains(v.getSparqlName()))) {
- final String projectedName = v.getName();
+
if (v.getExpressions() != null && v.getExpressions().size() > 0) {
String fromName = v.getExpressions().get(0);
@@ -630,7 +631,7 @@
projections.add(v.getLiteralLangExpression() + " AS " + projectedName + "_LANG");
}
} else {
- projections.add("NULL"); //fix for MARMOTTA-460
+ projections.add("NULL AS " + projectedName); //fix for MARMOTTA-460
}
}
diff --git a/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlTest.java b/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlTest.java
index 9ab8d3d..53ee91b 100644
--- a/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlTest.java
+++ b/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlTest.java
@@ -23,7 +23,6 @@
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.apache.marmotta.kiwi.config.KiWiConfiguration;
-import org.apache.marmotta.kiwi.persistence.pgsql.PostgreSQLDialect;
import org.apache.marmotta.kiwi.sail.KiWiStore;
import org.apache.marmotta.kiwi.sparql.sail.KiWiSparqlSail;
import org.apache.marmotta.kiwi.test.junit.KiWiDatabaseRunner;
@@ -342,13 +341,13 @@
@Test
public void testMarmotta640_1() throws Exception {
final String queryString = IOUtils.toString(this.getClass().getResourceAsStream("MARMOTTA-640_1.sparql"), "UTF-8");
- testQueryEvaluation(queryString);
+ testQueryEvaluation(queryString); //TODO: if we could get data, we could also test the result
}
@Test
public void testMarmotta640_2() throws Exception {
final String queryString = IOUtils.toString(this.getClass().getResourceAsStream("MARMOTTA-640_2.sparql"), "UTF-8");
- testQueryEvaluation(queryString);
+ testQueryEvaluation(queryString); //TODO: if we could get data, we could also test the result
}
@Test