|
@@ -280,13 +280,13 @@ function tripal_bulk_loader_load_data($nid, $job_id) {
|
|
|
}
|
|
|
else {
|
|
|
print "ERROR: Template has changed after constants were assigned!\n";
|
|
|
- watchdog('T_bulk_loader', 'Template has changed after constants were assigned', array(), WATCHDOG_NOTICE);
|
|
|
+ tripal_bulk_loader_throw_error('Template has changed after constants were assigned', array(), WATCHDOG_NOTICE);
|
|
|
exit(1);
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
print "ERROR: Template has changed after constants were assigned!\n";
|
|
|
- watchdog('T_bulk_loader', 'Template has changed after constants were assigned', array(), WATCHDOG_NOTICE);
|
|
|
+ tripal_bulk_loader_throw_error('Template has changed after constants were assigned', array(), WATCHDOG_NOTICE);
|
|
|
exit(1);
|
|
|
}
|
|
|
}
|
|
@@ -300,8 +300,8 @@ function tripal_bulk_loader_load_data($nid, $job_id) {
|
|
|
$file = new SplFileObject($node->file, 'r');
|
|
|
}
|
|
|
catch (Exception $e) {
|
|
|
- watchdog('T_bulk_loader', 'Could not open file %file',
|
|
|
- array($node->file), WATCHDOG_ERROR);
|
|
|
+ tripal_bulk_loader_throw_error('Could not open file %file',
|
|
|
+ array('%file' => $node->file), WATCHDOG_ERROR);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -512,14 +512,15 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
|
|
|
$values = tripal_bulk_loader_regex_tranform_values($values, $table_data, $addt->line);
|
|
|
if (!$values) {
|
|
|
- //watchdog('T_bulk_loader', 'Line ' . $addt->line_num . ' Regex:<pre>' . print_r($values, TRUE) . print_r($table_data, TRUE) . '</pre>' . '</pre>', array(), WATCHDOG_NOTICE);
|
|
|
+ //tripal_bulk_loader_throw_error('Line ' . $addt->line_num . ' Regex:<pre>' . print_r($values, TRUE) . print_r($table_data, TRUE) . '</pre>' . '</pre>', array(), WATCHDOG_NOTICE);
|
|
|
}
|
|
|
|
|
|
// get the table description
|
|
|
$table_desc = tripal_core_get_chado_table_schema($table);
|
|
|
if (!$table_desc) {
|
|
|
- watchdog('T_bulk_loader', "Failure: Tripal does not know about the table named '%table'. If this is a custom table,
|
|
|
- please define it first", array('%table' => $table), WATCHDOG_ERROR);
|
|
|
+ $msg = "Tripal does not know about the table named '%table'. If this is a custom table,
|
|
|
+ please define it first";
|
|
|
+ tripal_bulk_loader_throw_error($msg, array('%table' => $table), WATCHDOG_ERROR);
|
|
|
$data[$priority]['error'] = TRUE;
|
|
|
return;
|
|
|
}
|
|
@@ -546,7 +547,7 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
else {
|
|
|
$msg = "\nLine " . $addt->line_num . ' "' . $table_data['record_id'] .
|
|
|
'" (' . $table_data['mode'] . ') Missing template required value: ' . $table . '.' . $field;
|
|
|
- watchdog('T_bulk_loader', $msg, array(), WATCHDOG_WARNING);
|
|
|
+ tripal_bulk_loader_throw_error($msg, array(), WATCHDOG_WARNING);
|
|
|
$data[$priority]['error'] = TRUE;
|
|
|
$no_errors = FALSE;
|
|
|
}
|
|
@@ -570,7 +571,7 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
strcmp($def['type'], 'serial') != 0) { // it is not a 'serial' type column
|
|
|
$msg = "\nLine " . $addt->line_num . ' ' . $table_data['record_id'] .
|
|
|
' (' . $table_data['mode'] . ') Missing Database Required Value: ' . $table . '.' . $field;
|
|
|
- watchdog('T_bulk_loader', $msg, array(), WATCHDOG_ERROR);
|
|
|
+ tripal_bulk_loader_throw_error($msg, array(), WATCHDOG_ERROR);
|
|
|
$data[$priority]['error'] = TRUE;
|
|
|
}
|
|
|
}
|
|
@@ -581,19 +582,19 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
|
|
|
// if there was an error already -> don't insert
|
|
|
if (array_key_exists('error', $data[$priority]) and $data[$priority]['error']) {
|
|
|
- watchdog('T_bulk_loader','Skipping processing of %table due to previous errors',array('%table'=>$table),WATCHDOG_NOTICE);
|
|
|
+ tripal_bulk_loader_throw_error('Skipping processing of %table due to previous errors',array('%table'=>$table),WATCHDOG_NOTICE);
|
|
|
return $no_errors;
|
|
|
}
|
|
|
|
|
|
// skip optional fields
|
|
|
if ($skip_optional) {
|
|
|
- watchdog('T_bulk_loader','Skipping an optional record (%record)',array('%record'=>$table_data['record_id']),WATCHDOG_NOTICE);
|
|
|
+ tripal_bulk_loader_throw_error('Skipping an optional record (%record)',array('%record'=>$table_data['record_id']),WATCHDOG_NOTICE);
|
|
|
return $no_errors;
|
|
|
}
|
|
|
|
|
|
// check if it is already inserted
|
|
|
if (array_key_exists('inserted', $table_data) and $table_data['inserted']) {
|
|
|
- watchdog('T_bulk_loader','Skipping %record since it is already inserted',array('%record'=>$table_data['record_id']),WATCHDOG_NOTICE);
|
|
|
+ tripal_bulk_loader_throw_error('Skipping %record since it is already inserted',array('%record'=>$table_data['record_id']),WATCHDOG_NOTICE);
|
|
|
return $no_errors;
|
|
|
}
|
|
|
|
|
@@ -601,7 +602,7 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
// the default_data array
|
|
|
if (array_key_exists('selected', $table_data) and $table_data['selected']) {
|
|
|
$data[$priority]['values_array'] = $default_data[$priority]['values_array'];
|
|
|
- watchdog('T_bulk_loader','%record was already selected thus we are just returning the values previously selected.',array('%record'=>$table_data['record_id']),WATCHDOG_NOTICE);
|
|
|
+ tripal_bulk_loader_throw_error('%record was already selected thus we are just returning the values previously selected.',array('%record'=>$table_data['record_id']),WATCHDOG_NOTICE);
|
|
|
return $no_errors;
|
|
|
}
|
|
|
|
|
@@ -620,7 +621,7 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
if (preg_match('/insert_unique/', $table_data['mode']) or
|
|
|
$table_data['select_if_duplicate'] == 1 or
|
|
|
$table_data['update_if_duplicate'] == 1) {
|
|
|
- $options = array('is_duplicate' => TRUE);
|
|
|
+ $options = array('is_duplicate' => TRUE, 'print_errors' => TRUE);
|
|
|
$duplicate = tripal_core_chado_select($table, array_keys($table_desc['fields']), $values, $options);
|
|
|
|
|
|
// if this is a duplicate then substitute the values in the table_data array so
|
|
@@ -652,7 +653,7 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
}
|
|
|
// return if this is a select_if_duplicate
|
|
|
if ($table_data['select_if_duplicate'] == 1) {
|
|
|
- watchdog('T_bulk_loader','Simply returning values for %record since it was already inserted',array('%record'=>$table_data['record_id']),WATCHDOG_NOTICE);
|
|
|
+ tripal_bulk_loader_throw_error('Simply returning values for %record since it was already inserted',array('%record'=>$table_data['record_id']),WATCHDOG_NOTICE);
|
|
|
return $no_errors;
|
|
|
}
|
|
|
}
|
|
@@ -708,14 +709,16 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
}
|
|
|
if (!empty($match)) {
|
|
|
// Now we need to check if it already exists via a select
|
|
|
- $results = tripal_core_chado_select($table, array_keys($table_desc['fields']), $match);
|
|
|
+ $results = tripal_core_chado_select($table, array_keys($table_desc['fields']), $match, array('print_errors' => TRUE));
|
|
|
// If not then insert
|
|
|
if (empty($results)) {
|
|
|
$options['statement_name'] = 'ins_'.$options['statement_name'];
|
|
|
+ $options['print_errors'] = TRUE;
|
|
|
$record = tripal_core_chado_insert($table, $values, $options);
|
|
|
}
|
|
|
else {
|
|
|
$options['return_record'] = TRUE;
|
|
|
+ $options['print_errors'] = TRUE;
|
|
|
$record = tripal_core_chado_update($table, $match, $values, $options);
|
|
|
}
|
|
|
}
|
|
@@ -724,12 +727,13 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
$table_data['mode'] . ') Unable to update record since none of the unique key or primary key fields were available ' .
|
|
|
' where values:' . print_r($values, TRUE);
|
|
|
|
|
|
- watchdog('T_bulk_loader', $msg, array(), WATCHDOG_ERROR);
|
|
|
+ tripal_bulk_loader_throw_error($msg, array(), WATCHDOG_ERROR);
|
|
|
$data[$priority]['error'] = TRUE;
|
|
|
$no_errors = FALSE;
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
+ $options['print_errors'] = TRUE;
|
|
|
$record = tripal_core_chado_insert($table, $values, $options);
|
|
|
}
|
|
|
|
|
@@ -739,7 +743,7 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
$table_data['mode'] . ') Unable to insert record into ' . $table .
|
|
|
' where values:' . print_r($values, TRUE);
|
|
|
|
|
|
- watchdog('T_bulk_loader', $msg, array(), WATCHDOG_ERROR);
|
|
|
+ tripal_bulk_loader_throw_error($msg, array(), WATCHDOG_ERROR);
|
|
|
$data[$priority]['error'] = TRUE;
|
|
|
$no_errors = FALSE;
|
|
|
}
|
|
@@ -798,14 +802,14 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
// get the matches for this select
|
|
|
$matches = array();
|
|
|
if (is_array($values) and count($values) > 0) {
|
|
|
- $matches = tripal_core_chado_select($table, array_keys($table_desc['fields']), $values);
|
|
|
+ $matches = tripal_core_chado_select($table, array_keys($table_desc['fields']), $values, array('print_errors' => TRUE));
|
|
|
}
|
|
|
// if the record doesn't exist and it's not optional then generate an error
|
|
|
if (count($matches) == 0) {
|
|
|
// No record on select
|
|
|
if ($table_data['select_optional'] != 1) {
|
|
|
$msg = "\nLine " . $addt->line_num . ' ' . $table_data['record_id'] . ' (' . $table_data['mode'] . ') No Matching record in ' . $table . ' where values:' . print_r($values, TRUE);
|
|
|
- watchdog('T_bulk_loader', $msg, array(), WATCHDOG_ERROR);
|
|
|
+ tripal_bulk_loader_throw_error($msg, array(), WATCHDOG_ERROR);
|
|
|
$data[$priority]['error'] = TRUE;
|
|
|
$no_errors = FALSE;
|
|
|
}
|
|
@@ -819,7 +823,7 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
|
if (count($matches) > 1) {
|
|
|
if ($table_data['select_optional'] != 1) {
|
|
|
$msg = "\nLine " . $addt->line_num . ' ' . $table_data['record_id'] . ' (' . $table_data['mode'] . ') Too many matching records in ' . $table . ' where values:' . print_r($values, TRUE);
|
|
|
- watchdog('T_bulk_loader', $msg, array(), WATCHDOG_WARNING);
|
|
|
+ tripal_bulk_loader_throw_error($msg, array(), WATCHDOG_WARNING);
|
|
|
$data[$priority]['error'] = TRUE;
|
|
|
$no_errors = FALSE;
|
|
|
}
|
|
@@ -927,6 +931,7 @@ function tripal_bulk_loader_add_foreignkey_to_values($table_array, $values, $dat
|
|
|
array_key_exists($foreign_table, $tbl_description['foreign keys']) and
|
|
|
array_key_exists($field, $tbl_description['foreign keys'][$foreign_table]['columns']) and
|
|
|
$foreign_field == $tbl_description['foreign keys'][$foreign_table]['columns'][$field]) {
|
|
|
+ //check here for fk bug
|
|
|
$values[$field] = $foreign_values;
|
|
|
}
|
|
|
// if the field in the Referral records is not in an FK relationship
|
|
@@ -942,6 +947,7 @@ function tripal_bulk_loader_add_foreignkey_to_values($table_array, $values, $dat
|
|
|
$fvalues = array($fk_description['primary key'][0] => $foreign_values);
|
|
|
$columns = array($foreign_field);
|
|
|
$options = array('statement_name' => 'pk_' . $foreign_table);
|
|
|
+ $options['print_errors'] = TRUE;
|
|
|
$record = tripal_core_chado_select($foreign_table, $columns, $fvalues, $options);
|
|
|
if ($record) {
|
|
|
$values[$field] = $record[0]->$foreign_field;
|
|
@@ -962,6 +968,7 @@ function tripal_bulk_loader_add_foreignkey_to_values($table_array, $values, $dat
|
|
|
$fvalues = $foreign_values;
|
|
|
$columns = array($foreign_field);
|
|
|
$options = array('statement_name' => 'blk_' . $nid . $priority . $foreign_table);
|
|
|
+ $options['print_errors'] = TRUE;
|
|
|
$record = tripal_core_chado_select($foreign_table, $columns, $fvalues, $options);
|
|
|
if ($record) {
|
|
|
$values[$field] = $record[0]->$foreign_field;
|
|
@@ -1167,3 +1174,13 @@ function tripal_bulk_loader_progress_file_track_job($job_id, $record_added, $lin
|
|
|
variable_set('tripal_bulk_loader_progress_file_handle', NULL);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+function tripal_bulk_loader_throw_error($msg, $args, $severity) {
|
|
|
+ tripal_core_report_error(
|
|
|
+ 'tripal_bulk',
|
|
|
+ $severity,
|
|
|
+ $msg,
|
|
|
+ $args,
|
|
|
+ array('print' => TRUE)
|
|
|
+ );
|
|
|
+}
|