fabriziofortino commented on a change in pull request #444:
URL: https://github.com/apache/jackrabbit-oak/pull/444#discussion_r773247696



##########
File path: 
oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/PropertyIndexCommonTest.java
##########
@@ -171,6 +180,56 @@ public void propertyExistenceQuery() throws Exception {
                 Arrays.asList("/test/a", "/test/b")));
     }
 
+    @Test
+    public void propertyExistenceQueryWithNullCheck() throws Exception {
+        NodeTypeRegistry.register(root, 
IOUtils.toInputStream(TestUtil.TEST_NODE_TYPE), "test nodeType");
+
+        Tree idx = indexOptions.setIndex(root, "test1",
+                
indexOptions.createIndex(indexOptions.createIndexDefinitionBuilder(), 
TestUtil.NT_TEST, false, "propa", "propb"));
+        Tree props = TestUtil.newRulePropTree(idx, TestUtil.NT_TEST);
+        Tree prop = props.addChild(TestUtil.unique("prop"));
+        prop.setProperty(PROP_NAME, "propa");
+        prop.setProperty(PROP_PROPERTY_INDEX, true);
+        prop.setProperty(PROP_NOT_NULL_CHECK_ENABLED, true);
+        root.commit();
+
+        Tree test = root.getTree("/").addChild("test");
+        createNodeWithType(test, "a", "oak:TestNode").setProperty("propa", 
"a");
+        createNodeWithType(test, "b", "oak:TestNode").setProperty("propa", 
"c");
+        createNodeWithType(test, "c", "oak:TestNode").setProperty("propb", 
"e");
+        root.commit();
+
+        String query = "select [jcr:path] from [oak:TestNode] where [propa] is 
not null";
+        String explanation = explain(query);
+        assertThat(explanation, containsString(indexOptions.getIndexType() + 
":test1(/oak:index/test1) "));
+        assertEventually(() -> assertQuery(query, asList("/test/a", 
"/test/b")));
+    }
+
+    @Test
+    public void propertyNonExistenceQuery() throws Exception {
+        NodeTypeRegistry.register(root, 
IOUtils.toInputStream(TestUtil.TEST_NODE_TYPE), "test nodeType");
+
+        Tree idx = indexOptions.setIndex(root, "test2",
+                
indexOptions.createIndex(indexOptions.createIndexDefinitionBuilder(), 
TestUtil.NT_TEST, false, "propa", "propb"));
+        Tree props = TestUtil.newRulePropTree(idx, TestUtil.NT_TEST);
+        Tree prop = props.addChild(TestUtil.unique("prop"));
+        prop.setProperty(PROP_NAME, "propa");
+        prop.setProperty(PROP_PROPERTY_INDEX, true);
+        prop.setProperty(PROP_NULL_CHECK_ENABLED, true);
+        root.commit();
+
+        Tree test = root.getTree("/").addChild("test");
+        createNodeWithType(test, "a", "oak:TestNode").setProperty("propa", 
"a");
+        createNodeWithType(test, "b", "oak:TestNode").setProperty("propa", 
"c");
+        createNodeWithType(test, "c", "oak:TestNode").setProperty("propb", 
"e");
+        root.commit();
+
+        String query = "select [jcr:path] from [oak:TestNode] where [propa] is 
null";
+        String explanation = explain(query);
+        assertThat(explanation, containsString(indexOptions.getIndexType() + 
":test2(/oak:index/test2) "));

Review comment:
       Right. I have re-worked the test to make sure the Lucene test is 
verified.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to