agentm / agentm/project-m36

track data type dependencies

Offen
#376 0 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @agentm Auf GitHub ansehen
Vorherrschende Sprache
Haskell
Sterne
952
Forks
50
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.