Daniel Oliveira created BEAM-12466:
--------------------------------------

             Summary: Add documentation and improved errors for QueryFn in 
MongoDbIO
                 Key: BEAM-12466
                 URL: https://issues.apache.org/jira/browse/BEAM-12466
             Project: Beam
          Issue Type: Bug
          Components: io-java-mongodb
            Reporter: Daniel Oliveira


Currently the MongoDbIO.Read implementation assumes that the submitted QueryFn 
is one of the predefined QueryFns in Beam, so either an AggregationQuery or 
FindQuery. The problem is this assumption is not documented anywhere.

Fixing this consists of two small changes:

1. Add documentation to the 
[withQueryFn|https://github.com/apache/beam/blob/release-2.31.0/sdks/java/io/mongodb/src/main/java/org/apache/beam/sdk/io/mongodb/MongoDbIO.java#L279]
 method specifying that the QueryFn must be one of the predefined classes in 
the MongoDbIO package.

2. In the [split 
method|https://github.com/apache/beam/blob/release-2.31.0/sdks/java/io/mongodb/src/main/java/org/apache/beam/sdk/io/mongodb/MongoDbIO.java#L435],
 the code checks if the QueryFn is a FindQuery, and if not assumes it's an 
AggregationQuery, meaning that users that input their own class will find it 
failing to cast to an AggregationQuery. Instead, there should be an error if 
the QueryFn is an unknown type, preferably instructing users to only use one of 
the predefined QueryFn types.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to