|
@@ -320,25 +320,22 @@ function tripal_bulk_loader_load_data($nid, $job_id) {
|
|
}
|
|
}
|
|
|
|
|
|
// Start Transaction
|
|
// Start Transaction
|
|
- /**
|
|
|
|
$savepoint = '';
|
|
$savepoint = '';
|
|
switch (variable_get('tripal_bulk_loader_transactions', 'row')) {
|
|
switch (variable_get('tripal_bulk_loader_transactions', 'row')) {
|
|
case "none":
|
|
case "none":
|
|
break;
|
|
break;
|
|
case "all":
|
|
case "all":
|
|
print "\t\tStart Transaction...\n";
|
|
print "\t\tStart Transaction...\n";
|
|
- tripal_db_start_transaction();
|
|
|
|
|
|
+ $TRANSACTION = db_transaction();
|
|
$transactions = TRUE;
|
|
$transactions = TRUE;
|
|
- $savepoint = "";
|
|
|
|
break;
|
|
break;
|
|
case "row":
|
|
case "row":
|
|
print "\t\tStart Transaction...\n";
|
|
print "\t\tStart Transaction...\n";
|
|
- tripal_db_start_transaction();
|
|
|
|
|
|
+ $TRANSACTION = db_transaction();
|
|
$transactions = TRUE;
|
|
$transactions = TRUE;
|
|
- $savepoint = "last_row_complete";
|
|
|
|
|
|
+ $new_transaction_per_row = TRUE;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- */
|
|
|
|
|
|
|
|
// Disable triggers
|
|
// Disable triggers
|
|
/**
|
|
/**
|
|
@@ -422,12 +419,12 @@ function tripal_bulk_loader_load_data($nid, $job_id) {
|
|
|
|
|
|
tripal_bulk_loader_progress_file_track_job($job_id, $no_errors);
|
|
tripal_bulk_loader_progress_file_track_job($job_id, $no_errors);
|
|
$failed = FALSE;
|
|
$failed = FALSE;
|
|
- if ( !$no_errors ) {
|
|
|
|
|
|
+ if ($no_errors == FALSE) {
|
|
// Encountered an error
|
|
// Encountered an error
|
|
if ($transactions) {
|
|
if ($transactions) {
|
|
- tripal_db_rollback_transaction($savepoint);
|
|
|
|
|
|
+ $TRANSACTION->rollback();
|
|
}
|
|
}
|
|
- $failed = TRUE;
|
|
|
|
|
|
+ tripal_bulk_loader_finish_loading($node->nid, FALSE);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
} // end of foreach table in default data array
|
|
} // end of foreach table in default data array
|
|
@@ -435,50 +432,34 @@ function tripal_bulk_loader_load_data($nid, $job_id) {
|
|
tripal_bulk_loader_progress_file_track_job($job_id, FALSE, TRUE);
|
|
tripal_bulk_loader_progress_file_track_job($job_id, FALSE, TRUE);
|
|
|
|
|
|
if ($failed) {
|
|
if ($failed) {
|
|
|
|
+ $TRANSACTION->rollback();
|
|
|
|
+ tripal_bulk_loader_finish_loading($node->nid, FALSE);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
// Row inserted successfully
|
|
// Row inserted successfully
|
|
- // Set savepoint if supplied
|
|
|
|
- if ($savepoint) {
|
|
|
|
- if ($num_lines == 1) {
|
|
|
|
- //tripal_db_set_savepoint_transaction($savepoint);
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- // Tell it to remove the previous savepoint of the same name
|
|
|
|
- //tripal_db_set_savepoint_transaction($savepoint, TRUE);
|
|
|
|
- }
|
|
|
|
|
|
+ if ($transactions && $new_transaction_per_row) {
|
|
|
|
+ // commit current transaction and start a new one
|
|
|
|
+ unset($TRANSACTION);
|
|
|
|
+ $TRANSACTION = db_transaction();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} //end of foreach line of file
|
|
} //end of foreach line of file
|
|
|
|
|
|
- /**
|
|
|
|
// END Transaction
|
|
// END Transaction
|
|
if ($transactions) {
|
|
if ($transactions) {
|
|
- // end the transaction
|
|
|
|
- tripal_db_commit_transaction();
|
|
|
|
|
|
+ unset($TRANSACTION);
|
|
}
|
|
}
|
|
|
|
|
|
if ($failed) {
|
|
if ($failed) {
|
|
$loaded_without_errors = FALSE;
|
|
$loaded_without_errors = FALSE;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
-*/
|
|
|
|
tripal_bulk_loader_progress_bar($total_lines, $total_lines);
|
|
tripal_bulk_loader_progress_bar($total_lines, $total_lines);
|
|
tripal_bulk_loader_progress_file_track_job($job_id, FALSE, FALSE, TRUE);
|
|
tripal_bulk_loader_progress_file_track_job($job_id, FALSE, FALSE, TRUE);
|
|
} //end of foreach constant set
|
|
} //end of foreach constant set
|
|
|
|
|
|
- // set the status of the job (in the node not the tripal jobs)
|
|
|
|
- if ($loaded_without_errors) {
|
|
|
|
- $status = 'Loading Completed Successfully';
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- $status = 'Errors Encountered';
|
|
|
|
- }
|
|
|
|
- db_update('tripal_bulk_loader')
|
|
|
|
- ->fields(array('job_status' => $status))
|
|
|
|
- ->condition('nid', $nid)
|
|
|
|
- ->execute();
|
|
|
|
|
|
+ tripal_bulk_loader_finish_loading($node->nid, $loaded_without_errors);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -573,6 +554,7 @@ function process_data_array_for_line($priority, &$data, &$default_data, $addt) {
|
|
' (' . $table_data['mode'] . ') Missing Database Required Value: ' . $table . '.' . $field;
|
|
' (' . $table_data['mode'] . ') Missing Database Required Value: ' . $table . '.' . $field;
|
|
tripal_bulk_loader_throw_error($msg, array(), TRIPAL_ERROR);
|
|
tripal_bulk_loader_throw_error($msg, array(), TRIPAL_ERROR);
|
|
$data[$priority]['error'] = TRUE;
|
|
$data[$priority]['error'] = TRUE;
|
|
|
|
+ $no_errors = FALSE;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1186,4 +1168,24 @@ function tripal_bulk_loader_throw_error($msg, $args, $severity) {
|
|
$args,
|
|
$args,
|
|
array('print' => TRUE)
|
|
array('print' => TRUE)
|
|
);
|
|
);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function tripal_bulk_loader_finish_loading($nid, $loaded_without_errors) {
|
|
|
|
+
|
|
|
|
+ // set the status of the job (in the node not the tripal jobs)
|
|
|
|
+ if ($loaded_without_errors) {
|
|
|
|
+ $status = 'Loading Completed Successfully';
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ $status = 'Errors Encountered';
|
|
|
|
+ }
|
|
|
|
+ db_update('tripal_bulk_loader')
|
|
|
|
+ ->fields(array('job_status' => $status))
|
|
|
|
+ ->condition('nid', $nid)
|
|
|
|
+ ->execute();
|
|
|
|
+
|
|
|
|
+ if(!$loaded_without_errors) {
|
|
|
|
+ drush_set_error('BULK_LOAD_FAILED', 'Execution aborted due to errors.');
|
|
|
|
+ exit();
|
|
|
|
+ }
|
|
}
|
|
}
|