function tripal_library_add_mview_library_feature_count
2.x tripal_library.install | tripal_library_add_mview_library_feature_count() |
Adds a materialized view keeping track of the type of features associated with each library
Related topics
1 call to tripal_library_add_mview_library_feature_count()
- tripal_library_install in tripal_library/
tripal_library.install - Implementation of hook_install().
File
- tripal_library/
tripal_library.install, line 115 - Installation of the library module
Code
function tripal_library_add_mview_library_feature_count() {
$view_name = 'library_feature_count';
$comment = 'Provides count of feature by type that are associated with all libraries';
$schema = array(
'table' => $view_name,
'description' => $comment,
'fields' => array(
'library_id' => array(
'size' => 'big',
'type' => 'int',
'not null' => TRUE,
),
'name' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
),
'num_features' => array(
'type' => 'int',
'not null' => TRUE,
),
'feature_type' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
),
),
'indexes' => array(
'library_feature_count_idx1' => array('library_id'),
),
);
$sql = "
SELECT
L.library_id, L.name,
count(F.feature_id) as num_features,
CVT.name as feature_type
FROM library L
INNER JOIN library_feature LF ON LF.library_id = L.library_id
INNER JOIN feature F ON LF.feature_id = F.feature_id
INNER JOIN cvterm CVT ON F.type_id = CVT.cvterm_id
GROUP BY L.library_id, L.name, CVT.name
";
tripal_add_mview($view_name, 'tripal_library', $schema, $sql, $comment);
}