Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-36088

[XDCR] Adv filtering some number functions not working as expected

    XMLWordPrintable

Details

    • Untriaged
    • Centos 64-bit
    • No

    Description

      According to the design doc, niql number functions are supported in adv filtering, but ASIN and ACOS functions are not working as expected.
      https://docs.google.com/document/d/19PkXWG8ovTS-E7l2Fqg_kRwsPTh_wHhjrrFBFPOWzQs/edit?pli=1#heading=h.jue93z4nyvp5

      However, ATAN() in adv filter matches niql results.

      doc:

      {
        "string_short": "x",
        "string_medium": ")nx.\n\tPfDEEptfV2o",
        "int": 93,
        "float": 16.770881608010846,
        "string_long": "KfdVIYXB4Hk@uA9ZrChdOGP\r^lEd/l lQaAEoqGTfznioxXTsxlDy\fkBWmIiAe\nRPqm6.-\\RK%ZE&WzSn)rvt_IJi",
        "string_vlong": "egof$\ryps<QmEaQhg",
        "bool": false
      }
      

      working filter (the doc matches this filter and is replicated to target):
      ATAN(int)<>3.05682983181e+307

      not working (doc matches filter but is NOT replicated to target):
      ASIN(int)<>3.05682983181e+307
      ACOS(int)<>3.05682983181e+307

      Following queries return 1 when the above doc is present in src:

      SELECT COUNT(*) FROM default WHERE 'ACOS(int)<>3.05682983181e+307'
      SELECT COUNT(*) FROM default WHERE 'ASIN(int)<>3.05682983181e+307' 
      

      Attachments

        Issue Links

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

          Activity

            Build couchbase-server-6.5.0-4754 contains gojsonsm commit abdb374 with commit message:
            MB-36088 - Refactored much of data type comparisons and added N1QL-like collate to fast matcher

            build-team Couchbase Build Team added a comment - Build couchbase-server-6.5.0-4754 contains gojsonsm commit abdb374 with commit message: MB-36088 - Refactored much of data type comparisons and added N1QL-like collate to fast matcher

            Build couchbase-server-6.5.0-4754 contains gojsonsm commit 0e8f997 with commit message:
            MB-36088 - implement NaN float comparisons

            build-team Couchbase Build Team added a comment - Build couchbase-server-6.5.0-4754 contains gojsonsm commit 0e8f997 with commit message: MB-36088 - implement NaN float comparisons

            Build couchbase-server-7.0.0-1034 contains gojsonsm commit abdb374 with commit message:
            MB-36088 - Refactored much of data type comparisons and added N1QL-like collate to fast matcher

            build-team Couchbase Build Team added a comment - Build couchbase-server-7.0.0-1034 contains gojsonsm commit abdb374 with commit message: MB-36088 - Refactored much of data type comparisons and added N1QL-like collate to fast matcher

            Build couchbase-server-7.0.0-1034 contains gojsonsm commit 0e8f997 with commit message:
            MB-36088 - implement NaN float comparisons

            build-team Couchbase Build Team added a comment - Build couchbase-server-7.0.0-1034 contains gojsonsm commit 0e8f997 with commit message: MB-36088 - implement NaN float comparisons

            Verified this behavior on 6.5.0-4821:

            Any NaN (not-a-number) float values will be considered less than any other real number, and two NaNs will not yield equality. The only exception is the operators “<=” and “>=” would break this paradigm and return “true”. This is different from golang’s standards where NaNs are not equal when compared regardless of function. Applications using gojsonsm such as XDCR can check for collation.

            pavithra.mahamani Pavithra Mahamani added a comment - Verified this behavior on 6.5.0-4821: Any NaN (not-a-number) float values will be considered less than any other real number, and two NaNs will not yield equality. The only exception is the operators “<=” and “>=” would break this paradigm and return “true”. This is different from golang’s standards where NaNs are not equal when compared regardless of function. Applications using gojsonsm such as XDCR can check for collation.

            People

              neil.huang Neil Huang
              pavithra.mahamani Pavithra Mahamani
              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