Module SkhcDb.AlbumParticipantSource

Operations on album's participant

Sourcemodule Column : sig ... end

AlbumParticipant's table columns

Sourcetype t

type of album' participants

Sourceval init : album_id:int64 -> artist_id:int64 -> Role.t -> t

init ~album_id ~artist_id role creates a new relation by associated a music with album_id an artist with artist_id with a role.

Sourceval equal : t -> t -> bool

equal a1 a2 tests whether a1 equals a2. All fields are used for the test.

Sourceval compare : t -> t -> int

compare a1 a2 is Stdlib.compare.

Sourceval insert : Database.t -> t -> (unit, Sqlite3.Rc.t * string) result

insert db participant inserts participant inside db.

Sourceval update_artist : Database.t -> int64 -> int64 -> (unit, Sqlite3.Rc.t * string) result

update_artist db old_id new_id replaces old_id by new_id.

Sourceval find : compilation:bool -> Database.t -> (Artist.t * Role.t) list -> Album.t -> Album.t list

find ~compilation database artists album tries to find an album in database with the name album.name and at least an arist with the name is in artists unless compilation, in this case only the album.name is check to discriminate albums

  • since 0.3.0
Sourceval find_from_metadata : compilation:bool -> Database.t -> SkhcMetadata.Metadata.t -> Album.t list

find_from_metadata ~compilation database metadata is find but use metadata instead of database objects.

  • since 0.3.0
Sourceval find_or_insert : compilation:bool -> Database.t -> (Artist.t * Role.t) list -> Album.t -> (Album.t, Sqlite3.Rc.t * string) result

find_or_insert ~compilation database artists album tries to find an album in database with the name album.name and at least an arist with the name is in artists unless compilation, in this case only the album.name is check to discriminate albums. If no album is found, find_or_insert will try to insert album into database.