MCPcopy Create free account
hub / github.com/PostHog/duckgres / TestDMLUpdateFromJoin

Function TestDMLUpdateFromJoin

tests/integration/dml_test.go:275–301  ·  view source on GitHub ↗

TestDMLUpdateFromJoin tests UPDATE with FROM clause (join)

(t *testing.T)

Source from the content-addressed store, hash-verified

273
274// TestDMLUpdateFromJoin tests UPDATE with FROM clause (join)
275func TestDMLUpdateFromJoin(t *testing.T) {
276 mustExec(t, testHarness.DuckgresDB, "CREATE TABLE dml_update_target (id INTEGER, value INTEGER)")
277 mustExec(t, testHarness.DuckgresDB, "CREATE TABLE dml_update_source (id INTEGER, new_value INTEGER)")
278 mustExec(t, testHarness.DuckgresDB, "INSERT INTO dml_update_target VALUES (1, 10), (2, 20), (3, 30)")
279 mustExec(t, testHarness.DuckgresDB, "INSERT INTO dml_update_source VALUES (1, 100), (2, 200)")
280
281 t.Run("update_from_join", func(t *testing.T) {
282 _, err := testHarness.DuckgresDB.Exec(`
283 UPDATE dml_update_target
284 SET value = dml_update_source.new_value
285 FROM dml_update_source
286 WHERE dml_update_target.id = dml_update_source.id
287 `)
288 if err != nil {
289 t.Fatalf("Update from join failed: %v", err)
290 }
291 // Verify
292 result, _ := ExecuteQuery(testHarness.DuckgresDB, "SELECT value FROM dml_update_target WHERE id = 1")
293 if result.Rows[0][0].(int64) != 100 {
294 t.Errorf("Expected value=100, got %v", result.Rows[0][0])
295 }
296 })
297
298 // Cleanup
299 mustExec(t, testHarness.DuckgresDB, "DROP TABLE IF EXISTS dml_update_target")
300 mustExec(t, testHarness.DuckgresDB, "DROP TABLE IF EXISTS dml_update_source")
301}
302
303// TestDMLDelete tests DELETE variations
304func TestDMLDelete(t *testing.T) {

Callers

nothing calls this directly

Calls 4

mustExecFunction · 0.85
ExecuteQueryFunction · 0.85
RunMethod · 0.65
ExecMethod · 0.65

Tested by

no test coverage detected