hasura / hasura/graphql-engine

Support fragment or '*' as "update_columns" in on_conflict clause of insert mutation

Open
#4,415 1 comment 18 reactions 1 assignee Claimed by @0x777 View on GitHub
a/api/graphql c/graphql c/server k/ideas
Dominant language
TypeScript
Stars
32.1k
Forks
3k
PR merge metrics
PR metrics pending

Description

We have a use case where we want to upsert objects with large number of fields.
It is inconvenient to duplicate all fields in update_columns section.
It would be nice to use fragment or '*' in update_columns instead of all fields duplicate.

Example:
```
mutation upsert_article {
insert_article (
objects: [
{
id: 2,
title: "ex quis mattis",
content: "Pellentesque lobortis quam non leo faucibus efficitur",
published_on: "2019-10-12",
status_code: 1,
description: "descr",
format_code: 34,
internal_id: 55,
encoding_id: 56,
external_id: 57,
created_at: "2019-10-12",
language_id: 44,
nameversion_id: 55
}
],
on_conflict: {
constraint: article_pkey,
update_columns: article_fragment
}
) {
returning {
affected_rows
}
}
}

fragment article_fragment on article {
format_code
internal_id
encoding_id
external_id
created_at
language_id
nameversion_id
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.