[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15946235#comment-15946235 ] Kunal Khatua commented on DRILL-5088: - QA verification is not needed as added unit tests confirm the fix. > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > Fix For: 1.10.0 > > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15884108#comment-15884108 ] ASF GitHub Bot commented on DRILL-5088: --- Github user asfgit closed the pull request at: https://github.com/apache/drill/pull/702 > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15883939#comment-15883939 ] ASF GitHub Bot commented on DRILL-5088: --- Github user sudheeshkatkam commented on the issue: https://github.com/apache/drill/pull/702 +1 > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15852859#comment-15852859 ] Gautam Kumar Parai commented on DRILL-5088: --- [~cshi] I think you should mark this issue as `blocked by` DRILL-5196 (using issue links)? Putting a `ready-to-commit` tag may cause this to be committed prior to DRILL-5196 which will break the testcase. > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15852856#comment-15852856 ] ASF GitHub Bot commented on DRILL-5088: --- Github user gparai commented on the issue: https://github.com/apache/drill/pull/702 Thanks for adding the testcase. +1 LGTM. > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15852380#comment-15852380 ] ASF GitHub Bot commented on DRILL-5088: --- Github user chunhui-shi commented on a diff in the pull request: https://github.com/apache/drill/pull/702#discussion_r99448154 --- Diff: contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestTableGenerator.java --- @@ -58,7 +59,16 @@ public static void generateTable(String dbName, String collection, .jsonArray(jsonArray).importFile(jsonFile).build(); MongoImportExecutable importExecutable = MongoImportStarter .getDefaultInstance().prepare(mongoImportConfig); -importExecutable.start(); +MongoImportProcess importProcess = importExecutable.start(); + +try { + while (importProcess.isProcessRunning()) { +Thread.sleep(1000); + } +}catch (Exception ex) { + logger.error("Import mongoDb failed", ex); --- End diff -- Paul, since there are two JIRAs here, I filed a new pull request https://github.com/apache/drill/pull/741 which addressed your comments. Could you look at that pull request? Thanks. > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15851910#comment-15851910 ] ASF GitHub Bot commented on DRILL-5088: --- Github user paul-rogers commented on a diff in the pull request: https://github.com/apache/drill/pull/702#discussion_r99396951 --- Diff: contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestTableGenerator.java --- @@ -58,7 +59,16 @@ public static void generateTable(String dbName, String collection, .jsonArray(jsonArray).importFile(jsonFile).build(); MongoImportExecutable importExecutable = MongoImportStarter .getDefaultInstance().prepare(mongoImportConfig); -importExecutable.start(); +MongoImportProcess importProcess = importExecutable.start(); + +try { + while (importProcess.isProcessRunning()) { +Thread.sleep(1000); + } +}catch (Exception ex) { + logger.error("Import mongoDb failed", ex); --- End diff -- Here we log the error but go ahead and return. Should we propagate an exception upward in the call stack so that the caller knows that "Something Is Wrong"? Otherwise, how will the caller know whether the import process is ready or not? > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15851911#comment-15851911 ] ASF GitHub Bot commented on DRILL-5088: --- Github user paul-rogers commented on a diff in the pull request: https://github.com/apache/drill/pull/702#discussion_r99396637 --- Diff: contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestSuit.java --- @@ -234,15 +240,17 @@ private static void createDbAndCollections(String dbName, @AfterClass public static void tearDownCluster() throws Exception { -if (mongoClient != null) { - mongoClient.dropDatabase(EMPLOYEE_DB); - mongoClient.close(); -} synchronized (MongoTestSuit.class) { - if (distMode) { -DistributedMode.cleanup(); - } else { -SingleMode.cleanup(); + if (initCount.decrementAndGet() == 0) { +if (mongoClient != null) { + mongoClient.dropDatabase(EMPLOYEE_DB); + mongoClient.close(); +} +if (distMode) { + DistributedMode.cleanup(); +} else { + SingleMode.cleanup(); --- End diff -- Should the above include error handling? It seems that if the `dropDatabase` fails, then `close()` won't be called, nor will the `cleanup` method. > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15822090#comment-15822090 ] Gautam Kumar Parai commented on DRILL-5088: --- Sorry, jumped the gun on the +1. I had one more question - Can we add a testcase for the bug? Thanks. > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15822075#comment-15822075 ] ASF GitHub Bot commented on DRILL-5088: --- Github user gparai commented on the issue: https://github.com/apache/drill/pull/702 +1 LGTM > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15820475#comment-15820475 ] ASF GitHub Bot commented on DRILL-5088: --- Github user chunhui-shi commented on the issue: https://github.com/apache/drill/pull/702 MongoGroupScan tries to read first record to guess record width. So this toJson is called for only first record. Notice that MongoClient.getDefaultCodecRegistry() contains DBRefCodecProvider: Shown in MongoClient.java(In MongoClient.java): private static final CodecRegistry DEFAULT_CODEC_REGISTRY = fromProviders(asList(new ValueCodecProvider(), new DBRefCodecProvider(), new DocumentCodecProvider(new DocumentToDBRefTransformer()), new DBObjectCodecProvider(), new BsonValueCodecProvider(), new GeoJsonCodecProvider())); but a default DocumentCodec constructor does not. And it was this constructor get called if we don't set a codec for toJson function to use. The list of CodecProviders is shown in DocumentCodec.java in MongoDb's code: public class DocumentCodec implements CollectibleCodec { private static final String ID_FIELD_NAME = "_id"; private static final CodecRegistry DEFAULT_REGISTRY = fromProviders(asList(new ValueCodecProvider(), new BsonValueCodecProvider(), new DocumentCodecProvider())); > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15820028#comment-15820028 ] ASF GitHub Bot commented on DRILL-5088: --- Github user gparai commented on a diff in the pull request: https://github.com/apache/drill/pull/702#discussion_r95719700 --- Diff: contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoGroupScan.java --- @@ -503,7 +505,9 @@ public ScanStats getScanStats() { long numDocs = collection.count(); float approxDiskCost = 0; if (numDocs != 0) { -String json = collection.find().first().toJson(); +final DocumentCodec codec = --- End diff -- Please add a comment to describe the need for the codec along with the example from the bug. > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (DRILL-5088) Error when reading DBRef column
[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15768134#comment-15768134 ] ASF GitHub Bot commented on DRILL-5088: --- GitHub user chunhui-shi opened a pull request: https://github.com/apache/drill/pull/702 DRILL-5088: set default codec for toJson You can merge this pull request into a Git repository by running: $ git pull https://github.com/chunhui-shi/drill DRILL-5088 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/drill/pull/702.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #702 commit c285a334eaeda810150ff162d1e1c0da342a37ff Author: chunhui-shiDate: 2016-12-18T08:27:50Z DRILL-5088: set default codec for toJson > Error when reading DBRef column > --- > > Key: DRILL-5088 > URL: https://issues.apache.org/jira/browse/DRILL-5088 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types > Environment: drill 1.9.0 > mongo 3.2 >Reporter: Guillaume Champion >Assignee: Chunhui Shi > > In a mongo database with DBRef, when a DBRef is inserted in the first line of > a mongo's collection drill query failed : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > {code} > Simple example to reproduce: > In mongo instance > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for > class com.mongodb.DBRef. > [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] > (state=,code=0) > {code} > If the first line doesn't contain de DBRef, drill will querying correctly : > In a mongo instance : > {code} > db.contact2.drop(); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") }); > db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" > : DBRef("contact", ObjectId("999cbf116b69060001fd8611")) }); > {code} > In drill : > {code} > 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2; > +--+---+ > | _id |account > | > +--+---+ > | {"$oid":"582081d96b69060001fd8939"} | {"$id":{}} > | > | {"$oid":"582081d96b69060001fd8938"} | > {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}} | > +--+---+ > 2 rows selected (0,563 seconds) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)