Error using execute once in supabase DB

There is issue when reading from supabase to supabase (using postgresql node). When using execute once in target in update / insert mode it sends only one row and doesn’t send the entire bulk ! it is something that needs to be fixed and updated because it looks like a bug
The version of n8n we use is 2.20.12

it is cloud instance.

when spoke to support they didnt deny this issue

When this issue would be solved?

Hi @amitkatzzadara, good morning!

Could you please share the support ticket so we can better understand what’s happening?

@amitkatzzadara not a bug, that’s actually what “Execute Once” is designed to do — it tells the node to run a single time using only the FIRST input item, ignoring the rest. so if your source returns 100 rows and target has Execute Once enabled, only row 1 gets inserted by design.

fix is to turn OFF Execute Once on the target Postgres node. with it off, the node runs once per input row (n8n’s default per-item behavior), so all 100 rows get processed. if you want them in a single SQL call instead of 100 separate queries, switch the target node’s Operation to Insert and check that it’s in batch/multiple mode (the Postgres node supports bulk insert via the values array when not in Execute Once).

why not allow in execute once the bulk of 100 rows once ?

Execute Once is a node-execution-count flag, not a batch flag — it literally means “run only the first input item, ignore the rest.” different feature than what u want.

for “bulk in one SQL call” the n8n pattern is Aggregate → Code → Postgres in Execute Query mode:

{
  "aggregate_node": "All Item Data into a Single List",
  "code_node_js": "const rows = $input.all()[0].json.data; const placeholders = rows.map((_, i) => `($${i*3+1}, $${i*3+2}, $${i*3+3})`).join(','); const params = rows.flatMap(r => [r.col1, r.col2, r.col3]); return [{json: {sql: `INSERT INTO target (col1,col2,col3) VALUES ${placeholders}`, params}}];",
  "postgres_node": {
    "operation": "Execute Query",
    "query": "{{ $json.sql }}",
    "parameters": "{{ $json.params }}",
    "execute_once": true
  }
}

that runs ONE INSERT with all 100 rows in a single round-trip instead of 100 separate inserts. lmk if u want me to walk through the Code node logic.