What is Dgraph lacking?

Can you point me to where the bug fix for this one is:

I tried this on Tuesday and it still wasn’t working. I have a table A, with an array relationship to B. I need to get every row of A with their B and perform an update for each one. So if A1 has B1, B2, B3, I need to do an update with [A1,B1], [A1, B2], [A1,B3], and I need to also include A2…A500 and it’s relationships.

AFAIK This is still not possible.

Update Many: Fail in GQL, pass in DQL

I gave this a fail because of the node limit error, it makes it almost impossible to use effectively because in some cases the node limit happens updating 200 records, and other times 500, also the node limit is enforced across multiple mutations in the same request. There is absolutely 0 reason to use this over DQL upsert and should probably be just removed from the graphql API if they aren’t going to improve it.

Update Many Conditionally: Fail everywhere. (See bugs below)

I can’t remember why I failed this one, so yeah, this is okay.

Update Many using data across relationships: Fail everywhere (See bugs below)
Update many to many relationships: Fail (See bugs below)
Read Many Nested Loops: Fail everywhere (See bugs below)

These bug still exists, and I’m referencing what I described at the top of this post. It essence these all boil down to the ability to permutate across relationships. In SQL, if I do a join, I will get a row for every unique combination of A and B that are joined via foreign keys. How do we do that here and get A1+B1, A1+B2, A1+B3,A2+B5,A3+B88, A3+B89 and so on and be able to use those in filters and upserts.

Otherwise yea, I think this conversation as been good for me as I have realized that that if they fixed this, added nested filtering and foreign keys then it would probably address 95-99% of my current biggest issues.
I understand that some things are not possible in Graphql due to the spec. Some/many of those issues could be addressed with tooling as they are mostly used by developers and not really needed.
I’m allowed to make mistakes, and when I do it can be punishing for a new user to have to figure out how to fix them, especially if they started using just the graphql API.

1 Like