agentscope-ai / agentscope-ai/agentscope-java
PostgresBaseStore UPSERT_SQL has an extra comma and fails updates
- Lingua principale
- Java
- Stelle
- 5.6k
- Fork
- 1.3k
- Merge medio
- 4g 12h
- PR unite (30g)
- 77
Descrizione
## 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.
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.