TestDMLDeleteUsing tests DELETE ... USING (join-style delete)
(t *testing.T)
| 396 | |
| 397 | // TestDMLDeleteUsing tests DELETE ... USING (join-style delete) |
| 398 | func TestDMLDeleteUsing(t *testing.T) { |
| 399 | mustExec(t, testHarness.DuckgresDB, "CREATE TABLE dml_delete_main (id INTEGER, status TEXT)") |
| 400 | mustExec(t, testHarness.DuckgresDB, "CREATE TABLE dml_delete_filter (id INTEGER)") |
| 401 | mustExec(t, testHarness.DuckgresDB, "INSERT INTO dml_delete_main VALUES (1, 'keep'), (2, 'delete'), (3, 'keep'), (4, 'delete')") |
| 402 | mustExec(t, testHarness.DuckgresDB, "INSERT INTO dml_delete_filter VALUES (2), (4)") |
| 403 | |
| 404 | t.Run("delete_using", func(t *testing.T) { |
| 405 | _, err := testHarness.DuckgresDB.Exec(` |
| 406 | DELETE FROM dml_delete_main |
| 407 | USING dml_delete_filter |
| 408 | WHERE dml_delete_main.id = dml_delete_filter.id |
| 409 | `) |
| 410 | if err != nil { |
| 411 | t.Fatalf("Delete USING failed: %v", err) |
| 412 | } |
| 413 | // Verify |
| 414 | result, _ := ExecuteQuery(testHarness.DuckgresDB, "SELECT COUNT(*) FROM dml_delete_main") |
| 415 | if result.Rows[0][0].(int64) != 2 { |
| 416 | t.Errorf("Expected 2 rows remaining, got %v", result.Rows[0][0]) |
| 417 | } |
| 418 | }) |
| 419 | |
| 420 | // Cleanup |
| 421 | mustExec(t, testHarness.DuckgresDB, "DROP TABLE IF EXISTS dml_delete_main") |
| 422 | mustExec(t, testHarness.DuckgresDB, "DROP TABLE IF EXISTS dml_delete_filter") |
| 423 | } |
| 424 | |
| 425 | // TestDMLWithCTE tests DML with CTEs |
| 426 | func TestDMLWithCTE(t *testing.T) { |
nothing calls this directly
no test coverage detected