Uploaded image for project: 'Teiid'
  1. Teiid
  2. TEIID-2988

MongoDB: Function substring - starting index and number of arguments

    XMLWordPrintable

Details

    Description

      Two minor bugs in function substring()

      Mongo's function $substr takes only 3 arguments so this query fails:

      SELECT intkey, SUBSTRING(BQT1.SmallA.stringkey, 1) FROM BQT1.SmallA ORDER BY intkey
      
      Exception:13:18:48,220 ERROR [org.teiid.CONNECTOR] (Worker38_QueryProcessorQueue345) Connector worker process failed for atomic-request=omsmHP0o16Sa.40.0.86: com.mongodb.CommandFailureException: { "serverUsed" : "localhost/127.0.0.1:27017" , "errmsg" : "exception: the $substr operator requires 3 operand(s)" , "code" : 16020 , "ok" : 0.0}
      	at com.mongodb.CommandResult.getException(CommandResult.java:71)
      	at com.mongodb.CommandResult.throwOnError(CommandResult.java:110)
      	at com.mongodb.DBCollection.aggregate(DBCollection.java:1308)
      

      Generated mongo command:

      { aggregate: "smalla", pipeline: [ { $project: { c_0: "$INTKEY", c_1: { $substr: [ "$STRINGKEY", 1 ] } } }, { $sort: { c_0: 1 } } ] }
      

      Mongo's $substr function second argument represents number of bytes to skip, not the starting index. The function substring(StringKey,1,1) returns the second letter, but it should return the first letter.

      Attachments

        Activity

          People

            rhn-engineering-rareddy Ramesh Reddy
            felias_jira Filip Elias (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: