|
@@ -143,7 +143,7 @@ function tripal_core_chado_insert($table, $values, $options = array()) {
|
|
|
// will not recreate it, but if not it will create one and store it in
|
|
|
// a Drupal variable for reuse later.
|
|
|
$connection = tripal_db_persistent_chado();
|
|
|
-
|
|
|
+
|
|
|
// if we cannot get a connection the abandon the prepared statement
|
|
|
if (!$connection) {
|
|
|
$prepared = FALSE;
|
|
@@ -172,15 +172,15 @@ function tripal_core_chado_insert($table, $values, $options = array()) {
|
|
|
// that has all the values needed for insert with all foreign relationsihps
|
|
|
// resolved.
|
|
|
foreach ($values as $field => $value) {
|
|
|
- // make sure the field is in the table description. If not then return an error
|
|
|
+ // make sure the field is in the table description. If not then return an error
|
|
|
// message
|
|
|
if (!array_key_exists($field, $table_desc['fields'])) {
|
|
|
watchdog('tripal_core', "tripal_core_chado_insert: The field '%field' does not exist ".
|
|
|
- "for the table '%table'. Cannot perform insert. Values: %array",
|
|
|
+ "for the table '%table'. Cannot perform insert. Values: %array",
|
|
|
array('%field' => $field, '%table' => $table, '%array' => print_r($values, 1)), WATCHDOG_ERROR);
|
|
|
return FALSE;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (is_array($value)) {
|
|
|
$foreign_options = array();
|
|
|
if ($options['statement_name']) {
|
|
@@ -210,7 +210,7 @@ function tripal_core_chado_insert($table, $values, $options = array()) {
|
|
|
$insert_values[$field] = $value;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if ($validate) {
|
|
|
|
|
|
// check for violation of any unique constraints
|
|
@@ -240,13 +240,13 @@ function tripal_core_chado_insert($table, $values, $options = array()) {
|
|
|
$coptions = array('statement_name' => 'uqsel_' . $table . '_' . $name);
|
|
|
}
|
|
|
if (tripal_core_chado_select($table, $ukselect_cols, $ukselect_vals, $coptions)) {
|
|
|
- watchdog('tripal_core', "tripal_core_chado_insert: Cannot insert duplicate record into $table table: " .
|
|
|
+ watchdog('tripal_core', "tripal_core_chado_insert: Cannot insert duplicate record into $table table: " .
|
|
|
print_r($values, 1), array(), 'WATCHDOG_ERROR');
|
|
|
return FALSE;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// if trying to insert a field that is the primary key, make sure it also is unique
|
|
|
if (array_key_exists('primary key', $table_desc)) {
|
|
|
$pkey = $table_desc['primary key'][0];
|
|
@@ -259,21 +259,21 @@ function tripal_core_chado_insert($table, $values, $options = array()) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // make sure required fields have a value
|
|
|
+ // make sure required fields have a value
|
|
|
if (!is_array($table_desc['fields'])) {
|
|
|
$table_desc['fields'] = array();
|
|
|
- watchdog('tripal_core', "tripal_core_chado_insert: %table missing fields: \n %schema",
|
|
|
+ watchdog('tripal_core', "tripal_core_chado_insert: %table missing fields: \n %schema",
|
|
|
array('%table' => $table, '%schema' => print_r($table_desc, 1)), WATCHDOG_WARNING);
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
foreach ($table_desc['fields'] as $field => $def) {
|
|
|
// a field is considered missing if it cannot be NULL and there is no default
|
|
|
// value for it or it is of type 'serial'
|
|
|
- if (array_key_exists('NOT NULL', $def) and
|
|
|
- !array_key_exists($field, $insert_values) and
|
|
|
+ if (array_key_exists('NOT NULL', $def) and
|
|
|
+ !array_key_exists($field, $insert_values) and
|
|
|
!array_key_exists('default', $def) and
|
|
|
strcmp($def['type'], serial) != 0) {
|
|
|
- watchdog('tripal_core', "tripal_core_chado_insert: Field $table.$field cannot be NULL: " .
|
|
|
+ watchdog('tripal_core', "tripal_core_chado_insert: Field $table.$field cannot be NULL: " .
|
|
|
print_r($values, 1), array(), 'WATCHDOG_ERROR');
|
|
|
return FALSE;
|
|
|
}
|
|
@@ -315,7 +315,7 @@ function tripal_core_chado_insert($table, $values, $options = array()) {
|
|
|
$idatatypes[] = 'text';
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// create the SQL
|
|
|
$sql = "INSERT INTO {$table} (" . implode(", ", $ifields) . ") VALUES (" . implode(", ", $itypes) . ")";
|
|
|
|
|
@@ -452,7 +452,7 @@ function tripal_core_chado_update($table, $match, $values, $options = NULL) {
|
|
|
// will not recreate it, but if not it will create one and store it in
|
|
|
// a Drupal variable for reuse later.
|
|
|
$connection = tripal_db_persistent_chado();
|
|
|
-
|
|
|
+
|
|
|
// if we cannot get a connection the abandon the prepared statement
|
|
|
if (!$connection ) {
|
|
|
$prepared = FALSE;
|
|
@@ -962,7 +962,7 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
// will not recreate it, but if not it will create one and store it in
|
|
|
// a Drupal variable for reuse later.
|
|
|
$connection = tripal_db_persistent_chado();
|
|
|
-
|
|
|
+
|
|
|
// if we cannot get a connection the abandon the prepared statement
|
|
|
if (!$connection) {
|
|
|
$prepared = FALSE;
|
|
@@ -973,7 +973,7 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
//print "NO STATEMENT (select): $table\n";
|
|
|
//debug_print_backtrace();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// check that our columns and values arguments are proper arrays
|
|
|
if (!is_array($columns)) {
|
|
|
watchdog('tripal_core', 'the $columns argument for tripal_core_chado_select must be an array.');
|
|
@@ -996,7 +996,7 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
if ($options['is_duplicate'] and array_key_exists('unique keys', $table_desc)) {
|
|
|
$ukeys = $table_desc['unique keys'];
|
|
|
$has_results = 0;
|
|
|
-
|
|
|
+
|
|
|
// iterate through the unique constraints and reset the values and columns
|
|
|
// arrays to only include these fields
|
|
|
foreach ($ukeys as $cname => $fields) {
|
|
@@ -1008,8 +1008,8 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
$new_options = array();
|
|
|
$uq_sname = "uq_" . $table . "_";
|
|
|
$has_pkey = 0;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
// include the primary key in the results returned
|
|
|
if (array_key_exists('primary key', $table_desc)) {
|
|
|
$has_pkey = 1;
|
|
@@ -1018,8 +1018,8 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
array_push($new_columns, $key);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- // recreate the $values and $columns arrays
|
|
|
+
|
|
|
+ // recreate the $values and $columns arrays
|
|
|
foreach ($fields as $field) {
|
|
|
if (array_key_exists($field, $values)) {
|
|
|
$new_values[$field] = $values[$field];
|
|
@@ -1029,7 +1029,7 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
array_push($new_columns, $field);
|
|
|
}
|
|
|
}
|
|
|
- // if the field doesn't exist in the values array then
|
|
|
+ // if the field doesn't exist in the values array then
|
|
|
// substitute any default values
|
|
|
elseif (array_key_exists('default', $table_desc['fields'][$field])) {
|
|
|
$new_values[$field] = $table_desc['fields'][$field]['default'];
|
|
@@ -1038,41 +1038,54 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
array_push($new_columns, $field);
|
|
|
}
|
|
|
}
|
|
|
+ // if there is no value (default or otherwise) check if this field is
|
|
|
+ // allowed to be null
|
|
|
+ elseif (!$table_desc['fields'][$field]['not null']) {
|
|
|
+ $new_values[$field] = NULL;
|
|
|
+ $uq_sname .= "n".substr($field, 0, 2);
|
|
|
+ if (!$has_pkey) {
|
|
|
+ array_push($new_columns, $field);
|
|
|
+ }
|
|
|
+ }
|
|
|
// if the array key doesn't exist in the values given by the caller
|
|
|
// and there is no default value then we cannot check if the record
|
|
|
// is a duplicate so return FALSE
|
|
|
else {
|
|
|
+ watchdog('tripal_core', "tripal_core_chado_select: There is no value for %field"
|
|
|
+ ." thus we cannot check if this record is unique",
|
|
|
+ array('%field' => $field), WATCHDOG_ERROR);
|
|
|
return FALSE;
|
|
|
}
|
|
|
}
|
|
|
$new_options['statement_name'] = $uq_sname;
|
|
|
+
|
|
|
$results = tripal_core_chado_select($table, $new_columns, $new_values, $new_options);
|
|
|
// if we have a duplicate record then return the results
|
|
|
if (count($results) > 0) {
|
|
|
$has_results = 1;
|
|
|
- }
|
|
|
+ }
|
|
|
unset($new_columns);
|
|
|
unset($new_values);
|
|
|
unset($new_options);
|
|
|
}
|
|
|
if ($options['has_record'] and $has_results) {
|
|
|
return TRUE;
|
|
|
- }
|
|
|
+ }
|
|
|
else {
|
|
|
return $results;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
foreach ($values as $field => $value) {
|
|
|
- // make sure the field is in the table description. If not then return an error
|
|
|
+ // make sure the field is in the table description. If not then return an error
|
|
|
// message
|
|
|
if (!array_key_exists($field, $table_desc['fields'])) {
|
|
|
watchdog('tripal_core', "tripal_core_chado_select: The field '%field' does not exist ".
|
|
|
- "for the table '%table'. Cannot perform query. Values: %array",
|
|
|
+ "for the table '%table'. Cannot perform query. Values: %array",
|
|
|
array('%field' => $field, '%table' => $table, '%array' => print_r($values, 1)), WATCHDOG_ERROR);
|
|
|
return array();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$select[] = $field;
|
|
|
if (is_array($value)) {
|
|
|
// if the user has specified multiple values for matching then this we
|
|
@@ -1119,8 +1132,12 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
- //need to catch a 0 and make int if integer field
|
|
|
- if ($table_desc['fields'][$field]['type'] == 'int') {
|
|
|
+ // need to catch a 0 and make int if integer field
|
|
|
+ // but we don't want to catch a NULL
|
|
|
+ if ($value === NULL) {
|
|
|
+ $where[$field] = NULL;
|
|
|
+ }
|
|
|
+ elseif ($table_desc['fields'][$field]['type'] == 'int') {
|
|
|
$where[$field][] = (int) $value;
|
|
|
}
|
|
|
else {
|
|
@@ -1161,6 +1178,13 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
$prepared = FALSE;
|
|
|
}
|
|
|
}
|
|
|
+ // if we have a null value then we need an IS NULL in our where statement
|
|
|
+ elseif ($value === NULL) {
|
|
|
+ $sql .= "$field IS NULL AND ";
|
|
|
+ $psql .= "$field IS NULL AND ";
|
|
|
+ // Need to remove one from the argument count b/c nulls don't add an argument
|
|
|
+ $i--;
|
|
|
+ }
|
|
|
// if we have a single value then we need an = in our where statement
|
|
|
else {
|
|
|
$operator = '=';
|
|
@@ -1249,7 +1273,6 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
// if this is the first time we've run this query
|
|
|
// then we need to do the prepare, otherwise just execute
|
|
|
if ($options['is_prepared'] != TRUE) {
|
|
|
-
|
|
|
$status = tripal_core_chado_prepare($options['statement_name'], $psql, $idatatypes);
|
|
|
if (!$status) {
|
|
|
return FALSE;
|
|
@@ -1262,8 +1285,8 @@ function tripal_core_chado_select($table, $columns, $values, $options = NULL) {
|
|
|
}
|
|
|
else {
|
|
|
$resource = chado_query($sql, $args);
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
// format results into an array
|
|
|
$results = array();
|
|
|
while ($r = db_fetch_object($resource)) {
|
|
@@ -1414,19 +1437,19 @@ function tripal_core_chado_get_foreign_key($table_desc, $field, $values, $option
|
|
|
* if more than one are returned. The options must be compatible with
|
|
|
* the options accepted by the tripal_core_chado_select() function.
|
|
|
* Additionally, These options are available for this function:
|
|
|
- * -return_array:
|
|
|
- * can be provided to force the function to always return an array. Default
|
|
|
- * behavior is to return a single record if only one record exists or to return
|
|
|
+ * -return_array:
|
|
|
+ * can be provided to force the function to always return an array. Default
|
|
|
+ * behavior is to return a single record if only one record exists or to return
|
|
|
* an array if multiple records exist.
|
|
|
- * - include_fk:
|
|
|
- * an array of FK relationships to fallow. By default, the
|
|
|
+ * - include_fk:
|
|
|
+ * an array of FK relationships to fallow. By default, the
|
|
|
* tripal_core_chado_select function will follow all FK relationships but this
|
|
|
* may generate more queries then is desired. Provide an array specifying the
|
|
|
* fields to include. For example, if including the cvterm, cv and dbxref records
|
|
|
* for a property the following array would work:
|
|
|
* array('type_id' => array('cv_id' => 1, 'dbxref_id' => 1)).
|
|
|
- * Typicall, to expadn a property, this function would also include the db record
|
|
|
- * through the db_id foreign key with the dbxref and db tables, but becuase
|
|
|
+ * Typicall, to expadn a property, this function would also include the db record
|
|
|
+ * through the db_id foreign key with the dbxref and db tables, but becuase
|
|
|
* it is not included in the array it will not be included in the results.
|
|
|
* @return
|
|
|
* Either an object (if only one record was selected from the base table)
|
|
@@ -1470,7 +1493,7 @@ function tripal_core_chado_get_foreign_key($table_desc, $field, $values, $option
|
|
|
*/
|
|
|
function tripal_core_generate_chado_var($table, $values, $base_options = array()) {
|
|
|
$all = new stdClass();
|
|
|
-
|
|
|
+
|
|
|
$return_array = 0;
|
|
|
if (array_key_exists('return_array', $base_options)) {
|
|
|
$return_array = 1;
|
|
@@ -1622,9 +1645,9 @@ function tripal_core_generate_chado_var($table, $values, $base_options = array()
|
|
|
if (empty($object->{$foreign_key})) {
|
|
|
continue;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if ($include_fk) {
|
|
|
- // don't recurse if the callee has supplied an $fk_include list and this
|
|
|
+ // don't recurse if the callee has supplied an $fk_include list and this
|
|
|
// FK table is not in the list.
|
|
|
if (is_array($include_fk) and !array_key_exists($foreign_key, $include_fk)) {
|
|
|
continue;
|
|
@@ -1632,12 +1655,12 @@ function tripal_core_generate_chado_var($table, $values, $base_options = array()
|
|
|
// if we have the option but it is not an array then we don't recurse any furutehr
|
|
|
if (!is_array($include_fk)) {
|
|
|
continue;
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
// get the record from the foreign table
|
|
|
$foreign_values = array($primary_key => $object->{$foreign_key});
|
|
|
$options = array();
|
|
|
- if (is_array($include_fk)) {
|
|
|
+ if (is_array($include_fk)) {
|
|
|
$options['include_fk'] = $include_fk[$foreign_key];
|
|
|
}
|
|
|
$foreign_object = tripal_core_generate_chado_var($foreign_table, $foreign_values, $options);
|
|
@@ -1743,7 +1766,7 @@ function tripal_core_generate_chado_var($table, $values, $base_options = array()
|
|
|
*/
|
|
|
function tripal_core_expand_chado_vars($object, $type, $to_expand, $table_options = array()) {
|
|
|
$base_table = $object->tablename;
|
|
|
-
|
|
|
+
|
|
|
// check to see if we are expanding an array of objects
|
|
|
if (is_array($object)) {
|
|
|
foreach ($object as $index => $o) {
|
|
@@ -1787,7 +1810,7 @@ function tripal_core_expand_chado_vars($object, $type, $to_expand, $table_option
|
|
|
break;
|
|
|
case "table": //--------------------------------------------------------------------------------
|
|
|
$foreign_table = $to_expand;
|
|
|
-
|
|
|
+
|
|
|
// don't expand the table it already is expanded
|
|
|
if (array_key_exists($foreign_table, $object)) {
|
|
|
return $object;
|
|
@@ -1808,7 +1831,7 @@ function tripal_core_expand_chado_vars($object, $type, $to_expand, $table_option
|
|
|
// if a prepared statement is provide then generate a new name
|
|
|
$new_options = $table_options;
|
|
|
if (array_key_exists('statement_name', $table_options)) {
|
|
|
- $new_options['statement_name'] = "exp_" . $foreign_table . "_" . substr($left, 0, 2) . substr($right, 0, 2);
|
|
|
+ $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 ($foreign_object) {
|
|
@@ -1830,7 +1853,7 @@ function tripal_core_expand_chado_vars($object, $type, $to_expand, $table_option
|
|
|
// if the object returned is NULL then handle that
|
|
|
else {
|
|
|
if (count($foreign_table_desc['foreign keys'][$base_table]['columns']) > 1) {
|
|
|
- $object->{$foreign_table}->{$left} = NULL;
|
|
|
+ $object->{$foreign_table}->{$left} = NULL;
|
|
|
}
|
|
|
else {
|
|
|
$object->{$foreign_table} = NULL;
|
|
@@ -1854,7 +1877,7 @@ function tripal_core_expand_chado_vars($object, $type, $to_expand, $table_option
|
|
|
watchdog('tripal_core', 'tripal_core_expand_chado_vars: Could not expand table, %table. It is ',
|
|
|
'not in a foreign key relationship with the base object nor with any other expanded table. ' .
|
|
|
'Check the table definition to ensure that a proper foreign key relationship is present.',
|
|
|
- array('%table' => $foreign_table), WATCHDOG_ERROR);
|
|
|
+ array('%table' => $foreign_table), WATCHDOG_ERROR);
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
@@ -2017,7 +2040,7 @@ function chado_query($sql) {
|
|
|
|
|
|
// Execute the query on the chado database/schema
|
|
|
// Use the persistent chado connection if it already exists
|
|
|
- $persistent_connection = variable_get('tripal_persistent_chado', NULL);
|
|
|
+ $persistent_connection = variable_get('tripal_persistent_chado', NULL);
|
|
|
if ($persistent_connection) {
|
|
|
|
|
|
$query = $sql;
|
|
@@ -2054,7 +2077,7 @@ function chado_query($sql) {
|
|
|
}
|
|
|
// END COPY FROM _db_query in database.pgsql.inc
|
|
|
}
|
|
|
- else {
|
|
|
+ else {
|
|
|
$previous_db = tripal_db_set_active('chado');
|
|
|
$results = _db_query($sql);
|
|
|
tripal_db_set_active($previous_db);
|
|
@@ -2483,7 +2506,7 @@ function tripal_db_set_active($dbname = 'default') {
|
|
|
// fails then do nothing.
|
|
|
else {
|
|
|
if (tripal_db_set_chado_search_path($dbname)) {
|
|
|
- // if the chado schema is local to Drupal then
|
|
|
+ // if the chado schema is local to Drupal then
|
|
|
// just return the active database.
|
|
|
return 'default';
|
|
|
}
|
|
@@ -2547,7 +2570,7 @@ function tripal_db_set_chado_search_path($dbname) {
|
|
|
*/
|
|
|
function tripal_db_set_default_search_path() {
|
|
|
// we make the assumption that the default schema is 'public'.
|
|
|
- $chado_exists = variable_get('chado_schema_exists', FALSE);
|
|
|
+ $chado_exists = variable_get('chado_schema_exists', FALSE);
|
|
|
if ($chado_exists) {
|
|
|
db_query('set search_path to %s', 'public,chado');
|
|
|
}
|
|
@@ -2609,12 +2632,12 @@ function tripal_core_is_sql_prepared($statement_name) {
|
|
|
*/
|
|
|
function tripal_core_chado_prepare($statement_name, $psql, $args) {
|
|
|
$connection = variable_get('tripal_persistent_chado', NULL);
|
|
|
-
|
|
|
+
|
|
|
if (!$connection) {
|
|
|
watchdog('tripal_core', "chado_prepare: not able to prepare '%name' statement as no persistent connection is available", array('%name' => $statement_name, '%sql' => $psql), WATCHDOG_ERROR);
|
|
|
return FALSE;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// Check to see if this statement was already prepared
|
|
|
if (tripal_core_is_sql_prepared($statement_name)) {
|
|
|
// check that the arguments are the same
|
|
@@ -2626,8 +2649,8 @@ function tripal_core_chado_prepare($statement_name, $psql, $args) {
|
|
|
}
|
|
|
else {
|
|
|
// Although a statement with this name is already prepared it is not the same!
|
|
|
- watchdog('tripal_core', "chado_prepare: '%name' statement already prepared with different arguments! You want to prepare %sql with %values and the existing statement is %esql with %existing",
|
|
|
- array('%name' => $statement_name, '%sql' => $psql, '%values' => print_r($args, TRUE), '%esql' => $prepared_sql,
|
|
|
+ watchdog('tripal_core', "chado_prepare: '%name' statement already prepared with different arguments! You want to prepare %sql with %values and the existing statement is %esql with %existing",
|
|
|
+ array('%name' => $statement_name, '%sql' => $psql, '%values' => print_r($args, TRUE), '%esql' => $prepared_sql,
|
|
|
'%existing' => print_r($prepared_args, TRUE)), WATCHDOG_ERROR);
|
|
|
return FALSE;
|
|
|
}
|
|
@@ -2660,7 +2683,7 @@ function tripal_core_chado_prepare($statement_name, $psql, $args) {
|
|
|
*/
|
|
|
function tripal_core_chado_execute_prepared($statement_name, $sql, $values) {
|
|
|
$connection = variable_get('tripal_persistent_chado', NULL);
|
|
|
-
|
|
|
+
|
|
|
if (!tripal_core_is_sql_prepared($statement_name)) {
|
|
|
watchdog('tripal_core', "tripal_core_chado_execute_prepared: Cannot execute an unprepared statement: '%name'", array('%name' => $statement_name), WATCHDOG_ERROR);
|
|
|
return FALSE;
|
|
@@ -2729,8 +2752,8 @@ function tripal_core_chado_execute_prepared($statement_name, $sql, $values) {
|
|
|
return $resource;
|
|
|
}
|
|
|
else {
|
|
|
- watchdog('tripal_core', "chado_execute_prepared: wrong number of arguments supplied for '%name' statement. Expected %required but recieved %values",
|
|
|
- array('%name' => $statement_name, '%required' => print_r($required_values, TRUE), '%values' => print_r($values, TRUE)), WATCHDOG_ERROR);
|
|
|
+ watchdog('tripal_core', "chado_execute_prepared: wrong number of arguments supplied for '%name' statement. Expected %required but recieved %values. Statement: %statement.",
|
|
|
+ array('%name' => $statement_name, '%required' => print_r($required_values, TRUE), '%values' => print_r($values, TRUE), '%statement' => $_SESSION['prepared_sql'][$connection][$statement_name]), WATCHDOG_ERROR);
|
|
|
return FALSE;
|
|
|
}
|
|
|
}
|
|
@@ -2749,7 +2772,7 @@ function tripal_db_persistent_chado() {
|
|
|
|
|
|
// get connection if it already exists
|
|
|
// Otherwise we need to set it
|
|
|
- $sconn = variable_get('tripal_persistent_chado', NULL);
|
|
|
+ $sconn = variable_get('tripal_persistent_chado', NULL);
|
|
|
if ($sconn) {
|
|
|
return $sconn;
|
|
|
}
|
|
@@ -2768,7 +2791,7 @@ function tripal_db_persistent_chado() {
|
|
|
}
|
|
|
else {
|
|
|
$connection = db_connect($db_url);
|
|
|
- }
|
|
|
+ }
|
|
|
if (!$connection) {
|
|
|
variable_set('tripal_persistent_chado', NULL);
|
|
|
watchdog('tripal_core', "Could not create persistant connection", array(), WATCHDOG_ERROR);
|
|
@@ -2794,9 +2817,9 @@ function tripal_db_release_persistent_chado() {
|
|
|
function tripal_db_start_transaction() {
|
|
|
$connection = tripal_db_persistent_chado();
|
|
|
if ($connection) {
|
|
|
- chado_query("BEGIN");
|
|
|
+ chado_query("BEGIN");
|
|
|
return $connection;
|
|
|
- }
|
|
|
+ }
|
|
|
return FALSE;
|
|
|
}
|
|
|
|
|
@@ -2988,10 +3011,10 @@ function tripal_core_schema_exists($schema) {
|
|
|
*/
|
|
|
function tripal_core_get_chado_tables($include_custom = NULL) {
|
|
|
|
|
|
-
|
|
|
+
|
|
|
// first get the chado version that is installed
|
|
|
$v = tripal_core_get_chado_version();
|
|
|
-
|
|
|
+
|
|
|
$tables = array();
|
|
|
if ($v == '1.2') {
|
|
|
$tables_v1_2 = tripal_core_chado_get_v1_2_tables();
|
|
@@ -3005,12 +3028,12 @@ function tripal_core_get_chado_tables($include_custom = NULL) {
|
|
|
$tables[$table] = $table;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// now add in the custom tables too if requested
|
|
|
if ($include_custom) {
|
|
|
$sql = "SELECT table_name FROM {tripal_custom_tables}";
|
|
|
$resource = db_query($sql);
|
|
|
-
|
|
|
+
|
|
|
while ($r = db_fetch_object($resource)) {
|
|
|
$tables[$r->table_name] = $r->table_name;
|
|
|
}
|