Skip to content

Commit

Permalink
Merge pull request #372 from VEuPathDB/371-dependency-table
Browse files Browse the repository at this point in the history
Add dataset_dependencies table queries for app db
  • Loading branch information
Foxcapades authored Feb 10, 2025
2 parents ef016ec + 39d375b commit f45ae93
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ interface AppDBTransaction : AppDBAccessor, AutoCloseable {

fun deleteDatasetOrganisms(datasetID: DatasetID)

fun deleteDatasetDependencies(datasetID: DatasetID)

/**
* Deletes a specific visibility record for a target dataset and user.
*
Expand Down Expand Up @@ -196,6 +198,8 @@ interface AppDBTransaction : AppDBAccessor, AutoCloseable {

fun insertDatasetOrganisms(datasetID: DatasetID, organisms: Collection<String>)

fun insertDatasetDependencies(datasetID: DatasetID, dependencies: Collection<VDIDatasetDependency>)

// endregion Insert Operations

// region Update Operations
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ class AppDBTransactionImpl(
connection.deleteDatasetOrganisms(schema, datasetID)
}

override fun deleteDatasetDependencies(datasetID: DatasetID) {
log.debug("deleting dataset dependency records for dataset {}", datasetID)
connection.deleteDatasetDependencies(schema, datasetID)
}

override fun insertDataset(dataset: DatasetRecord) {
log.debug("inserting dataset record for dataset {}", dataset.datasetID)
connection.insertDataset(schema, dataset)
Expand Down Expand Up @@ -183,6 +188,11 @@ class AppDBTransactionImpl(
connection.insertDatasetOrganisms(schema, datasetID, organisms)
}

override fun insertDatasetDependencies(datasetID: DatasetID, dependencies: Collection<VDIDatasetDependency>) {
log.debug("inserting {} dependency records for dataset {}", dependencies.size, datasetID)
connection.insertDatasetDependencies(schema, datasetID, dependencies)
}

override fun updateDataset(dataset: DatasetRecord) {
log.debug("updating dataset record for dataset {}", dataset.datasetID)
connection.updateDataset(schema, dataset)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package vdi.component.db.app.sql.delete

import org.veupathdb.vdi.lib.common.field.DatasetID
import vdi.component.db.app.sql.preparedUpdate
import java.sql.Connection

private fun sql(schema: String) =
// language=oracle
"""
DELETE FROM
${schema}.dataset_dependency
WHERE
dataset_id = ?
"""

internal fun Connection.deleteDatasetDependencies(schema: String, datasetID: DatasetID) =
preparedUpdate(sql(schema)) { setString(1, datasetID.toString()) }
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package vdi.component.db.app.sql.insert

import org.veupathdb.vdi.lib.common.field.DatasetID
import org.veupathdb.vdi.lib.common.model.VDIDatasetDependency
import vdi.component.db.app.sql.preparedBatchUpdate
import vdi.component.db.app.sql.setDatasetID
import java.sql.Connection


private fun sql(schema: String) =
// language=oracle
"""
INSERT INTO
${schema}.dataset_dependency (
dataset_id
, identifier
, display_name
, version
)
VALUES
(?, ?, ?, ?)
"""

internal fun Connection.insertDatasetDependencies(
schema: String,
datasetID: DatasetID,
dependencies: Collection<VDIDatasetDependency>,
) {
preparedBatchUpdate(sql(schema), dependencies) {
setDatasetID(1, datasetID)
setString(2, it.identifier)
setString(3, it.displayName)
setString(4, it.version)
}
}
1 change: 1 addition & 0 deletions lib/pruner/src/main/kotlin/vdi/component/pruner/Pruner.kt
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ object Pruner {
it.deleteDatasetHyperlinks(datasetID)
it.deleteDatasetPublications(datasetID)
it.deleteDatasetOrganisms(datasetID)
it.deleteDatasetDependencies(datasetID)
it.deleteDatasetMeta(datasetID)
it.deleteDataset(datasetID)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ internal class AppDBTarget(override val name: String, private val projectID: Str
it.deleteDatasetHyperlinks(dataset.datasetID)
it.deleteDatasetPublications(dataset.datasetID)
it.deleteDatasetOrganisms(dataset.datasetID)
it.deleteDatasetDependencies(dataset.datasetID)
it.deleteDatasetMeta(dataset.datasetID)
it.deleteDataset(dataset.datasetID)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,7 @@ internal class UpdateMetaTriggerHandlerImpl(
try {
insertDataset(record)
insertDatasetVisibility(datasetID, meta.owner)
insertDatasetDependencies(datasetID, meta.dependencies)

upsertInstallMetaMessage(datasetID, InstallStatus.Running)

Expand Down

0 comments on commit f45ae93

Please sign in to comment.