|
@@ -37,7 +37,7 @@ require_once "tripal_core.schema_v1.11.api.inc";
|
|
|
* there is a set of functions for inserting, updating and deleting properties for
|
|
|
* any table. This provides quick lookup of properties (provided the CV term is
|
|
|
* known).
|
|
|
- *
|
|
|
+ *
|
|
|
* @}
|
|
|
*
|
|
|
*/
|
|
@@ -1103,10 +1103,10 @@ function tripal_core_chado_delete($table, $match, $options = NULL) {
|
|
|
* - is_duplicate: TRUE or FALSE. Checks the values submited to see if
|
|
|
* they violate any of the unique constraints. If so, the record
|
|
|
* is returned, if not, FALSE is returned.
|
|
|
- * - pager: Use this option if it is desired to return only a subset of results
|
|
|
+ * - pager: Use this option if it is desired to return only a subset of results
|
|
|
* so that they may be shown with in a Drupal-style pager. This should be
|
|
|
- * an array with two keys: 'limit' and 'element'. The value of 'limit'
|
|
|
- * should specify the number of records to return and 'element' is a
|
|
|
+ * an array with two keys: 'limit' and 'element'. The value of 'limit'
|
|
|
+ * should specify the number of records to return and 'element' is a
|
|
|
* unique integer to differentiate between pagers when more than one
|
|
|
* appear on a page. The 'element' should start with zero and increment by
|
|
|
* one for each pager. The pager currently does not work with prepared queries
|
|
@@ -1486,7 +1486,7 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
if (in_array($field, $options['case_insensitive_columns'])) {
|
|
|
$sql .= "lower($field) $operator lower('%s') AND ";
|
|
|
$psql .= "lower($field) $operator lower('\$" . $i . "') AND ";
|
|
|
- $args[] = $value;
|
|
|
+ $args[] = $value[0];
|
|
|
}
|
|
|
else {
|
|
|
$sql .= "$field $operator '%s' AND ";
|
|
@@ -1546,10 +1546,10 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
else {
|
|
|
if (array_key_exists('limit', $pager)) {
|
|
|
$resource = chado_pager_query($sql, $pager['limit'], $pager['element'], NULL, $args);
|
|
|
- }
|
|
|
+ }
|
|
|
else {
|
|
|
$resource = chado_query($sql, $args);
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// format results into an array
|
|
@@ -1726,11 +1726,11 @@ function tripal_core_chado_get_foreign_key($table_desc, $field, $values, $option
|
|
|
*
|
|
|
* The above array will expand the 'type_id' of the property table but only
|
|
|
* further expand the cv_id and the dbxref_id and will go no further.
|
|
|
- * - pager:
|
|
|
- * Use this option if it is desired to return only a subset of results
|
|
|
+ * - pager:
|
|
|
+ * Use this option if it is desired to return only a subset of results
|
|
|
* so that they may be shown within a Drupal-style pager. This should be
|
|
|
- * an array with two keys: 'limit' and 'element'. The value of 'limit'
|
|
|
- * should specify the number of records to return and 'element' is a
|
|
|
+ * an array with two keys: 'limit' and 'element'. The value of 'limit'
|
|
|
+ * should specify the number of records to return and 'element' is a
|
|
|
* unique integer to differentiate between pagers when more than one
|
|
|
* appear on a page. The 'element' should start with zero and increment by
|
|
|
* one for each pager. This only works when type is a 'table'.
|
|
@@ -2049,11 +2049,11 @@ function tripal_core_generate_chado_var($table, $values, $base_options = array()
|
|
|
*
|
|
|
* The above array will expand the 'type_id' of the property table but only
|
|
|
* further expand the cv_id and the dbxref_id and will go no further.
|
|
|
- * - pager:
|
|
|
- * Use this option if it is desired to return only a subset of results
|
|
|
+ * - pager:
|
|
|
+ * Use this option if it is desired to return only a subset of results
|
|
|
* so that they may be shown within a Drupal-style pager. This should be
|
|
|
- * an array with two keys: 'limit' and 'element'. The value of 'limit'
|
|
|
- * should specify the number of records to return and 'element' is a
|
|
|
+ * an array with two keys: 'limit' and 'element'. The value of 'limit'
|
|
|
+ * should specify the number of records to return and 'element' is a
|
|
|
* unique integer to differentiate between pagers when more than one
|
|
|
* appear on a page. The 'element' should start with zero and increment by
|
|
|
* one for each pager. This only works when type is a 'table'.
|
|
@@ -2079,14 +2079,14 @@ function tripal_core_generate_chado_var($table, $values, $base_options = array()
|
|
|
*
|
|
|
* @ingroup tripal_chado_api
|
|
|
*/
|
|
|
-function tripal_core_expand_chado_vars($object, $type, $to_expand, $table_options = array()) {
|
|
|
+function tripal_core_expand_chado_vars($object, $type, $to_expand, $table_options = array()) {
|
|
|
|
|
|
// make sure we have a value
|
|
|
if (!$object) {
|
|
|
watchdog('tripal_core', 'Cannot pass non array as $object.', array(),WATCHDOG_ERROR);
|
|
|
- return $object;
|
|
|
+ return $object;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// check to see if we are expanding an array of objects
|
|
|
if (is_array($object)) {
|
|
|
foreach ($object as $index => $o) {
|
|
@@ -2094,10 +2094,10 @@ function tripal_core_expand_chado_vars($object, $type, $to_expand, $table_option
|
|
|
}
|
|
|
return $object;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// get the base table name
|
|
|
$base_table = $object->tablename;
|
|
|
-
|
|
|
+
|
|
|
switch ($type) {
|
|
|
case "field": //--------------------------------------------------------------------------------
|
|
|
if (preg_match('/(\w+)\.(\w+)/', $to_expand, $matches)) {
|
|
@@ -2140,9 +2140,9 @@ function tripal_core_expand_chado_vars($object, $type, $to_expand, $table_option
|
|
|
return $object;
|
|
|
}
|
|
|
$foreign_table_desc = tripal_core_get_chado_table_schema($foreign_table);
|
|
|
-
|
|
|
+
|
|
|
// If it's connected to the base table via a FK constraint
|
|
|
- if ($foreign_table_desc['foreign keys'][$base_table]) {
|
|
|
+ if ($foreign_table_desc['foreign keys'][$base_table]) {
|
|
|
foreach ($foreign_table_desc['foreign keys'][$base_table]['columns'] as $left => $right) {
|
|
|
// if the FK value in the base table is not there then we can't expand it, so just skip it.
|
|
|
if (!$object->{$right}) {
|
|
@@ -2157,7 +2157,7 @@ function tripal_core_expand_chado_vars($object, $type, $to_expand, $table_option
|
|
|
$new_options['statement_name'] = "exp_" . $foreign_table . "_" . substr($left, 0, 2) . substr($right, 0, 2);
|
|
|
}
|
|
|
$foreign_object = tripal_core_generate_chado_var($foreign_table, array($left => $object->{$right}), $new_options);
|
|
|
-
|
|
|
+
|
|
|
// if the generation of the object was successful, update the base object to include it.
|
|
|
if ($foreign_object) {
|
|
|
// in the case where the foreign key relationships exists more
|
|
@@ -2341,7 +2341,7 @@ function tripal_core_exclude_field_from_feature_by_default() {
|
|
|
|
|
|
/**
|
|
|
* Use this function instead of pager_query() when selecting a
|
|
|
- * subset of records from a Chado table.
|
|
|
+ * subset of records from a Chado table.
|
|
|
*
|
|
|
* @param $query
|
|
|
* The SQL statement to execute, this is followed by a variable number of args
|
|
@@ -2354,15 +2354,15 @@ function tripal_core_exclude_field_from_feature_by_default() {
|
|
|
* @returns
|
|
|
* A database query result resource or FALSE if the query was not
|
|
|
* executed correctly
|
|
|
- *
|
|
|
+ *
|
|
|
* @ingroup tripal_chado_api
|
|
|
*/
|
|
|
function chado_pager_query($query, $limit, $element, $count) {
|
|
|
-
|
|
|
- // The following code is almost an exact duplicate of the
|
|
|
+
|
|
|
+ // The following code is almost an exact duplicate of the
|
|
|
// Drupal pager_query function. However, substitions have
|
|
|
// been made to call chado_query rather than db_query
|
|
|
-
|
|
|
+
|
|
|
global $pager_page_array, $pager_total, $pager_total_items;
|
|
|
$page = isset($_GET['page']) ? $_GET['page'] : '';
|
|
|
|
|
@@ -2385,8 +2385,8 @@ function chado_pager_query($query, $limit, $element, $count) {
|
|
|
// We calculate the total of pages as ceil(items / limit).
|
|
|
$pager_total_items[$element] = db_result(chado_query($count_query, $args));
|
|
|
$pager_total[$element] = ceil($pager_total_items[$element] / $limit);
|
|
|
- $pager_page_array[$element] = max(0, min((int) $pager_page_array[$element], ((int) $pager_total[$element]) - 1));
|
|
|
-
|
|
|
+ $pager_page_array[$element] = max(0, min((int) $pager_page_array[$element], ((int) $pager_total[$element]) - 1));
|
|
|
+
|
|
|
return chado_query_range($query, $args, $pager_page_array[$element] * $limit, $limit);
|
|
|
}
|
|
|
|
|
@@ -2404,7 +2404,7 @@ function chado_pager_query($query, $limit, $element, $count) {
|
|
|
* @returns
|
|
|
* A database query result resource or FALSE if the query was not
|
|
|
* executed correctly
|
|
|
- *
|
|
|
+ *
|
|
|
* @ingroup tripal_chado_api
|
|
|
*/
|
|
|
function chado_query_range($query) {
|
|
@@ -2419,7 +2419,7 @@ function chado_query_range($query) {
|
|
|
}
|
|
|
_db_query_callback($args, TRUE);
|
|
|
$query = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $query);
|
|
|
- $query .= ' LIMIT ' . (int) $count . ' OFFSET ' . (int) $from;
|
|
|
+ $query .= ' LIMIT ' . (int) $count . ' OFFSET ' . (int) $from;
|
|
|
return chado_query($query);
|
|
|
}
|
|
|
/**
|
|
@@ -2434,8 +2434,8 @@ function chado_query_range($query) {
|
|
|
* @returns
|
|
|
* A database query result resource or FALSE if the query was not
|
|
|
* executed correctly
|
|
|
- *
|
|
|
- * @ingroup tripal_chado_api
|
|
|
+ *
|
|
|
+ * @ingroup tripal_chado_api
|
|
|
*/
|
|
|
function chado_query($sql) {
|
|
|
global $persistent_chado;
|
|
@@ -2553,7 +2553,7 @@ function chado_query($sql) {
|
|
|
* Likewise,
|
|
|
* $organism_id = chado_get_id_for_node ('organism', $node)
|
|
|
* $feature_id = chado_get_id_for_node ('feature', $node)
|
|
|
- *
|
|
|
+ *
|
|
|
* @ingroup tripal_chado_api
|
|
|
*/
|
|
|
function chado_get_id_for_node($table, $node) {
|
|
@@ -2567,7 +2567,7 @@ function chado_get_id_for_node($table, $node) {
|
|
|
* Likewise,
|
|
|
* $nid = chado_get_node_id ('organism', $organism_id)
|
|
|
* $nid = chado_get_node_id ('feature', $feature_id)
|
|
|
- *
|
|
|
+ *
|
|
|
* @ingroup tripal_chado_api
|
|
|
*/
|
|
|
function chado_get_node_id($table, $id) {
|
|
@@ -3279,7 +3279,7 @@ function tripal_db_set_savepoint_transaction($savepoint, $release = FALSE) {
|
|
|
|
|
|
/**
|
|
|
* A simple function to commit a database transaction
|
|
|
- *
|
|
|
+ *
|
|
|
* @return nothing
|
|
|
*/
|
|
|
function tripal_db_commit_transaction() {
|
|
@@ -3294,11 +3294,11 @@ function tripal_db_commit_transaction() {
|
|
|
*
|
|
|
* @param $savepoint
|
|
|
* The name of the saved point in the transaction to rollback to
|
|
|
- *
|
|
|
+ *
|
|
|
* @param $commit
|
|
|
* The transcation will only be committed if this value is TRUE. The
|
|
|
* default is TRUE.
|
|
|
- *
|
|
|
+ *
|
|
|
* @return nothing
|
|
|
*/
|
|
|
function tripal_db_rollback_transaction($savepoint = NULL, $commit = TRUE) {
|