Skip to content

Can not regexp match predicates with newlines #4694

@insanitybit

Description

@insanitybit

What version of Dgraph are you using?

Dgraph version : v1.1.0
Dgraph SHA-256 : 7d4294a80f74692695467e2cf17f74648c18087ed7057d798f40e1d3a31d2095
Commit SHA-1 : ef7cdb2
Commit timestamp : 2019-09-04 00:12:51 -0700
Branch : HEAD
Go version : go1.12.7

Name: pydgraph
Version: 2.0.2
Summary: Official Dgraph client implementation for Python
Home-page: https://github.com/dgraph-io/pydgraph
Author: Dgraph Labs
Author-email: contact@dgraph.io
License: Apache License, Version 2.0
Requires: grpcio, protobuf
Required-by:

Have you tried reproducing the issue with the latest release?

This is the latest 'standalone' release.

What is the hardware spec (RAM, OS)?

16GB RAM, 8 core intel.

Ubuntu 18.04.

Steps to reproduce the issue (command/config used to run Dgraph).

docker run --rm -it -p 8000:8000 -p 8080:8080 -p 9080:9080 dgraph/standalone:latest

Create a node with a predicate 'foo' and a value '00\n0' .

Attempt to regexp match the newline character.

Here is an example query I have:

node_key = "e3e70682-c209-4cac-629f-6fbed82c07cd"

query = f"""
    {{
        q0(func: eq(node_key, "{node_key}"))
        @filter(regexp(arguments, /(?sm)^00./))
        {{
                uid,  
                expand(_all_)
        }}
    }}
    """
json.loads(local_client.txn(read_only=True).query(query).json)

Or
@filter(regexp(arguments, /(?sm)^00\n/))
@filter(regexp(arguments, /00\n/))

etc

Expected behaviour and actual result.

I expect to see the predicate returned, because '.' should match newline with the s/m flags. Or, with an explicit \n I should also see a value returned, but do not.

I can regex just '00' and get the value back, but otherwise I can find no way to actually regexp when newlines are involved.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/querylang/functionpriority/P1Serious issue that requires eventual attention (can wait a bit)status/acceptedWe accept to investigate/work on it.status/needs-attentionThis issue needs more eyes on it, more investigation might be required before accepting/rejecting it

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions