anitnilay20 / anitnilay20/beatrix

Implement transaction support for PostgreSQL

Aperta
#8 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
core high-priority postgres
Lingua principale
Rust
Stelle
1
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

## Description
Add transaction support to PostgreSQL backend for atomic operations and data consistency.

## Requirements
- [ ] Implement transaction management
- [ ] Support nested transactions (savepoints)
- [ ] Add automatic rollback on error
- [ ] Implement transaction isolation levels
- [ ] Add deadlock detection and retry logic
- [ ] Write comprehensive tests

## Acceptance Criteria
- Users can wrap operations in transactions
- Support for manual and automatic transaction management
- Proper error handling and rollback
- Support for different isolation levels

## Files to modify
- `beatrix_core/src/relational/transaction.rs` (new file)
- `beatrix_core/src/relational/db/postgres.rs`

## Example Usage
```rust
db.transaction(|tx| async move {
let user = User::insert().values(new_user).execute(&tx).await?;
let profile = Profile::insert().values(new_profile).execute(&tx).await?;
Ok((user, profile))
}).await?;
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.