From d763c089121a0e880240e32d9b7fa5946618f391 Mon Sep 17 00:00:00 2001 From: Neha Selvan Date: Mon, 25 Sep 2023 16:27:19 +0200 Subject: [PATCH] fixed find with boolean --- .../polypheny/db/runtime/functions/MqlFunctions.java | 2 ++ .../org/polypheny/db/mqtt/MqttStreamProcessor.java | 4 ++-- .../polypheny/db/mqtt/MqttStreamProcessorTest.java | 12 ++++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/polypheny/db/runtime/functions/MqlFunctions.java b/core/src/main/java/org/polypheny/db/runtime/functions/MqlFunctions.java index ab7468ff15..d3e3cc5672 100644 --- a/core/src/main/java/org/polypheny/db/runtime/functions/MqlFunctions.java +++ b/core/src/main/java/org/polypheny/db/runtime/functions/MqlFunctions.java @@ -781,6 +781,8 @@ private static Object transformBsonToPrimitive( BsonValue doc ) { return doc.asDocument().entrySet().stream().collect( Collectors.toMap( Entry::getKey, e -> transformBsonToPrimitive( e.getValue() ) ) ); case ARRAY: return doc.asArray().stream().map( MqlFunctions::transformBsonToPrimitive ).collect( Collectors.toList() ); + case BOOLEAN: + return doc.asBoolean().getValue(); default: return null; } diff --git a/plugins/mqtt-stream/src/main/java/org/polypheny/db/mqtt/MqttStreamProcessor.java b/plugins/mqtt-stream/src/main/java/org/polypheny/db/mqtt/MqttStreamProcessor.java index 7f2108db94..ba12ca1d96 100644 --- a/plugins/mqtt-stream/src/main/java/org/polypheny/db/mqtt/MqttStreamProcessor.java +++ b/plugins/mqtt-stream/src/main/java/org/polypheny/db/mqtt/MqttStreamProcessor.java @@ -78,9 +78,9 @@ private AlgRoot processMqlQuery() { } else if ( isNumber( msg ) ) { double value = Double.parseDouble( msg ); msgDoc = new BsonDocument( "$$ROOT", new BsonDouble( value ) ); - /*} else if ( isBoolean( msg ) ) { + } else if ( isBoolean( msg ) ) { boolean value = Boolean.parseBoolean( msg ); - msgDoc = new BsonDocument( "$$ROOT", new BsonBoolean( value ) );*/ + msgDoc = new BsonDocument( "$$ROOT", new BsonBoolean( value ) ); } else { // msg is String msgDoc = new BsonDocument( "$$ROOT", new BsonString( msg ) ); diff --git a/plugins/mqtt-stream/src/test/java/org/polypheny/db/mqtt/MqttStreamProcessorTest.java b/plugins/mqtt-stream/src/test/java/org/polypheny/db/mqtt/MqttStreamProcessorTest.java index 10aee65c05..fcb2a871de 100644 --- a/plugins/mqtt-stream/src/test/java/org/polypheny/db/mqtt/MqttStreamProcessorTest.java +++ b/plugins/mqtt-stream/src/test/java/org/polypheny/db/mqtt/MqttStreamProcessorTest.java @@ -190,5 +190,17 @@ public void filterTestForJsonStringMessage2() { assertTrue( streamProcessor.applyFilter()); } +//TODO: remove this test: + @Test + public void nestedDoctest() { + Transaction transaction = TestHelper.getInstance().getTransaction(); + Statement st = transaction.createStatement(); + String filterQuery = "{\"mqtt.status\":\"online\"}"; + MqttMessage mqttMessage = new MqttMessage( "{\"mqtt\":{\"status\":\"online\"}}", "button/battery"); + FilteringMqttMessage filteringMqttMessage = new FilteringMqttMessage(mqttMessage, filterQuery ); + MqttStreamProcessor streamProcessor = new MqttStreamProcessor( filteringMqttMessage, st ); + assertTrue( streamProcessor.applyFilter()); + } + }