Uploaded image for project: 'Couchbase Lite'
  1. Couchbase Lite
  2. CBL-3356

Validate 32+ select items in the query fails or not

    XMLWordPrintable

Details

    • Task
    • Resolution: Done
    • Major
    • 3.0.2
    • 3.1.0
    • .NET
    • Security Level: Public
    • None
    • 2

    Description

      • iOS had an issue with 32+ select items in the query fails to get column name for the ones after 32.

      func test() throws {
              let doc = MutableDocument(id: "docID").setString("value", forKey: "key")
              try! self.db.saveDocument(doc)
              
              Database.log.console.level = .verbose
              let query3 =
      """
                  select
                      `1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`,`12`,
                      `13`,`14`,`15`,`16`,`17`,`18`,`19`,`20`,`21`,`22`,`23`,`24`,
                      `25`,`26`,`27`,`28`,`29`,`30`,`31`,`32`, `key` from _ limit 1
      """
              let couchQuery3 = try self.db.createQuery(query3)
              let couchResults3: ResultSet = try couchQuery3.execute()
              couchResults3.forEach { couchResult in
                  print("toJSON()         : \(couchResult.toJSON())") // empty 
                  print("toArray()        : \(couchResult.toArray())")
                  print("toDictionary()   : \(couchResult.toDictionary())")
                  print("value(forKey:)   : \(couchResult.value(forKey: "key"))")
                  print("string(forKey:)    : \(couchResult.string(forKey: "key"))")
                  print("string(at:)    : \(couchResult.string(at: 32))")
              }
          }
      

      Result in iOS

      toJSON()         : {} 
      toArray()        : [<null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, "value"]
      toDictionary()   : [:]
      value(forKey:)   : nil
      string(forKey:)    : nil
      string(at:)    : "value"
      

      Expected result

      toJSON()         : "{"key":"value"} 
      toArray()        : [<null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, "value"]
      toDictionary()   : ["key":"value"]
      value(forKey:)   : "value"
      date(forKey:)    : "value"
      date(at:)    : "value"
      

      Fix commit here https://github.com/couchbase/couchbase-lite-ios/commit/a8c14fa4615cf5d9d462c63cb668c6b324f56a47

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              sandy.chuang Sandy Chuang (Inactive)
              Jayahari.Vavachan Jay Vavachan
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty