/** * Returns execution status with additional information like how many records were processed. * @param $sid sid of the story * @return stdClass info about the status */ public static function getExecutionStatus($sid) { $ktrExecutorDAO = new KTRExecutorDAO(); $tuplesFromExecuteInfoTable = $ktrExecutorDAO->getTuplesBySid($sid); $queryEngine = new QueryEngine(); if (!isset($tuplesFromExecuteInfoTable) || count($tuplesFromExecuteInfoTable) == 0) { $tuplesFromExecuteInfoTable = array(); $tables = $queryEngine->GetTablesList($sid); // Add table into exec info. foreach ($tables as $key => $tableName) { $rec = new stdClass(); $rec->tableName = $tableName; $rec->status = "success"; $rec->Eid = "NA"; $rec->ErrorMessage = ""; $rec->RecordsProcessed = $queryEngine->GetTotalNumberTuplesInTableBySidAndName($sid, "[{$tableName}]"); $rec->Sid = $sid; $rec->TimeEnd = "2013-08-18 12:21:19"; //FIXME $rec->TimeStart = "2013-08-18 12:21:19"; $rec->UserId = "NA"; $tuplesFromExecuteInfoTable[] = $rec; } } $result = array(); foreach ($tuplesFromExecuteInfoTable as $i => $tupleFromExecuteInfoTable) { if ($tupleFromExecuteInfoTable->status == 'success' || $tupleFromExecuteInfoTable->status == 'error') { $tupleFromExecuteInfoTable->numberProcessRecords = $queryEngine->GetTotalNumberTuplesInTableBySidAndName($sid, "[{$value->tableName}]"); //$tupleFromExecuteInfoTable->numberProcessRecords = $tupleFromExecuteInfoTable->RecordsProcessed; } else { //TODO FIXME: table name should not be wrapped into [] at this spet. Need global refactoring to move wrapping table into brackets closer to the query execution $tupleFromExecuteInfoTable->numberProcessRecords = $queryEngine->GetTotalNumberTuplesInTableBySidAndName($sid, "[{$value->tableName}]"); } $result[] = $tupleFromExecuteInfoTable; } return $result; }
function GetTablesList() { $queryEngine = new QueryEngine(); echo json_encode($queryEngine->GetTablesList($_REQUEST["sid"])); }