============================================================ RefreshMaterializedViewStatement pool tests ============================================================
(t *testing.T)
| 466 | // ============================================================ |
| 467 | |
| 468 | func TestRefreshMaterializedViewStatementPool(t *testing.T) { |
| 469 | t.Run("Get returns non-nil", func(t *testing.T) { |
| 470 | stmt := GetRefreshMaterializedViewStatement() |
| 471 | if stmt == nil { |
| 472 | t.Fatal("GetRefreshMaterializedViewStatement() returned nil") |
| 473 | } |
| 474 | PutRefreshMaterializedViewStatement(stmt) |
| 475 | }) |
| 476 | |
| 477 | t.Run("Put nil is safe", func(t *testing.T) { |
| 478 | PutRefreshMaterializedViewStatement(nil) |
| 479 | }) |
| 480 | |
| 481 | t.Run("Fields zeroed after Put", func(t *testing.T) { |
| 482 | withData := true |
| 483 | |
| 484 | stmt := GetRefreshMaterializedViewStatement() |
| 485 | stmt.Name = "mv_events" |
| 486 | stmt.Concurrently = true |
| 487 | stmt.WithData = &withData |
| 488 | |
| 489 | PutRefreshMaterializedViewStatement(stmt) |
| 490 | |
| 491 | if stmt.Name != "" { |
| 492 | t.Errorf("Name not cleared, got %q", stmt.Name) |
| 493 | } |
| 494 | if stmt.Concurrently { |
| 495 | t.Error("Concurrently not cleared") |
| 496 | } |
| 497 | if stmt.WithData != nil { |
| 498 | t.Error("WithData not cleared") |
| 499 | } |
| 500 | }) |
| 501 | |
| 502 | t.Run("Pool roundtrip reuse", func(t *testing.T) { |
| 503 | stmt1 := GetRefreshMaterializedViewStatement() |
| 504 | stmt1.Name = "my_mv" |
| 505 | PutRefreshMaterializedViewStatement(stmt1) |
| 506 | |
| 507 | stmt2 := GetRefreshMaterializedViewStatement() |
| 508 | if stmt2.Name != "" { |
| 509 | t.Errorf("Reused statement not clean, Name=%q", stmt2.Name) |
| 510 | } |
| 511 | PutRefreshMaterializedViewStatement(stmt2) |
| 512 | }) |
| 513 | } |
| 514 | |
| 515 | // ============================================================ |
| 516 | // DropStatement pool tests |
nothing calls this directly
no test coverage detected