agentm / agentm/project-m36

track data type dependencies

Aperta
#376 0 commenti 0 reazioni 1 assegnatario Rivendicata da @agentm Vedi su GitHub
Lingua principale
Haskell
Stelle
952
Fork
50
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Removing a data type from the db context can invalidate a relvar's consistency.

```
TutorialD (master/main): data HairColor = Brown | Black | Red | Blond
TutorialD (master/main): salon_customer := relation{tuple{name "Bob", hair Brown}, tuple{name "Steve", hair Blond}}
TutorialD (master/main): undata HairColor
TutorialD (master/main): :showexpr salon_customer
ERR: NoSuchDataConstructorError "Brown"
```
We should prevent the deletion of a type which is in use in a relvar or any functions. They will need to be redefined.
In the future, we should define which alterations to a type are "safe" for existing data- for example, adding a value constructor to an existing data type should be safe for relvars, but could create unmatched pattern errors in database functions. Perhaps there is no safe way to alter database types.

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.