/** * 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 GetTableData($sid, $table_name, $perPage, $pageNo) { $queryEngine = new QueryEngine(); $result = $queryEngine->GetTableDataBySidAndName($sid, "[{$table_name}]", $perPage, $pageNo); $columns = NULL; foreach ($result as $r) { $json_array["data"][] = $r; if ($columns === NULL) { if (is_array($r)) { $columns = implode(",", array_keys($r)); } else { $columns = implode(",", array_keys(get_object_vars($r))); } } } $totalTuple = $queryEngine->GetTotalNumberTuplesInTableBySidAndName($sid, "[{$table_name}]"); $totalPage = ceil($totalTuple / $perPage); $json_array["Control"]["perPage"] = $perPage; $json_array["Control"]["totalPage"] = $totalPage; $json_array["Control"]["pageNo"] = $pageNo; $json_array["Control"]["cols"] = $columns; return $json_array; }