agentscope-ai / agentscope-ai/agentscope-java

PostgresBaseStore UPSERT_SQL has an extra comma and fails updates

Aberta
#2,143 3 comentários 0 reações 0 responsáveis Ver no GitHub
area/harness bug
Linguagem predominante
Java
Estrelas
5.6k
Forks
1.3k
Merge médio
4d 12h
PRs com merge (30d)
77

Descrição

## Bug

`PostgresBaseStore.UPSERT_SQL` contains an extra comma after the version assignment:

```sql
ON CONFLICT (namespace_path, item_key) DO UPDATE SET
value_json = EXCLUDED.value_json,
version = %1$s.version + 1,,
updated_at = EXCLUDED.updated_at
```

The `,,` makes every update of an existing key through `BaseStore.put(...)` invalid PostgreSQL syntax. This blocks the official `PostgresDistributedStore` remote-filesystem/state composition and cross-replica production acceptance.

Observed against `e3a412ed2cc944e401da861c8d5e464b967724e9` in:

`agentscope-extensions-postgresql/.../store/PostgresBaseStore.java`

## Expected fix

Remove the extra comma and add a real PostgreSQL integration test that proves:

1. first `put` inserts version 1;
2. second `put` updates value and version to 2;
3. two independent clients using the same stale version with `putIfVersion` accept exactly one writer;
4. namespace isolation/search/delete remain correct;
5. `PostgresDistributedStore` fresh-client state, BaseStore, snapshot and execution-guard composition works.

A source-only SQL assertion is not sufficient; the regression should execute against PostgreSQL because formatting/table-name substitution and transaction behavior are part of the contract.

## Impact

Applications selecting the newly released PostgreSQL distributed Harness state can initialize schemas and perform an initial insert, but normal overwrite/update through `BaseStore.put` fails at runtime. Product hosts should not patch or replace the official BaseStore, so production readiness must remain false until the extension is fixed.

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.