dqlx icon indicating copy to clipboard operation
dqlx copied to clipboard

Upsert is not working

Open panakour opened this issue 2 years ago • 2 comments

Hi, thank you for your library,

I was trying to make an upsert block https://dgraph.io/docs/mutations/upsert-block/#example-of-uid-function and I see in your documentation: https://fenos.github.io/dqlx/docs/mutations/set#logical-upsert the way to do it. But there is a type error.

In your example you add a Query in the mutation like this:

resp, err := db.Mutation().
    Query(userByEmailQuery).
    Set(data).
    Execute(ctx)

but the query method has a dependency on an interface DQLizer which has the method signature: ToDQL() (query string, args []interface{}, err error)

Using the query builder in your example:

userByEmailQuery := dqlx.Query(dqlx.EqFn("email", "[email protected]")).
    .Select(`
        v as uid
        name
    `)

given us an instance of QueryBuilder which has the method ToDQL() (query string, args map[string]string, err error) that is not match to the DQLizer method:

panakour avatar Oct 07 '21 19:10 panakour

Hi @panakour, is this is fix in new version ?

dtrckd avatar Dec 24 '21 12:12 dtrckd

Hi @panakour, is this is fix in new version ?

Yes, this was fixed in the new version.

LockedThread avatar Apr 12 '22 13:04 LockedThread