| 339 | } |
| 340 | |
| 341 | func TestQuery_JSONBMixedOperators(t *testing.T) { |
| 342 | // Test mixing JSONB operators with regular parameters |
| 343 | q := Q().Space("SELECT * FROM tasks"). |
| 344 | Where("instance = ?", "prod"). |
| 345 | And("payload ?? 'type'"). |
| 346 | And("payload->>'status' = ?", "completed") |
| 347 | sql, args, err := q.ToSQL() |
| 348 | require.NoError(t, err) |
| 349 | require.Equal(t, "SELECT * FROM tasks WHERE instance = $1 AND payload ? 'type' AND payload->>'status' = $2", sql) |
| 350 | require.Equal(t, []any{"prod", "completed"}, args) |
| 351 | } |
| 352 | |
| 353 | func TestQuery_JSONBComplexQuery(t *testing.T) { |
| 354 | // Realistic example from the codebase |