postgrest-js icon indicating copy to clipboard operation
postgrest-js copied to clipboard

Expected behavior with defaultToNull set to true in bulk inserts

Open devpulse01 opened this issue 1 year ago • 1 comments

Bug report

  • [ ] I confirm this is a bug with Supabase, not with my own application.
  • [x] I confirm I have searched the Docs, GitHub Discussions, and Discord.

Describe the bug

When performing bulk inserts using the Supabase JS client with the defaultToNull option, the behavior of handling missing columns seems to vary based on the presence of the column in other rows within the same payload.

To Reproduce

Payload with mixed presence of "name" column:

const payload = [
  { category_id: 'a9278bf3' },
  { name: 'MyTask', category_id: 'a9278bf3' }
];

With defaultToNull: true: the first row has the "name" set to null as expected.


Payload with consistently missing "name" Column:

const payload = [
  { category_id: 'a9278bf3' },
  { category_id: 'a9278bf3' }
];

With defaultToNull: true: both rows use the column's default value for the "name" column and not null.

Expected behavior

Is this behavior expected when using the defaultToNull option in bulk inserts?

Specifically, should missing columns be inserted as null only if at least one row in the payload specifies the column?

System information

  • Version of supabase-js: 2.43.4

Thank you!

devpulse01 avatar Jun 14 '24 12:06 devpulse01