/**
  * 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;
}