$token = ""; $err_msg = ""; $rslt = init_tbspc($tbspc, $token, $q_docroot, $dsk_data_dir, $ram_data_dir, $err_msg); if ($rslt === false) { header("HTTP/1.1 500 Internal Server Error"); echo "<H1> Unable to reserve a tablespace </H1> \n"; echo "<H2> Error = [{$err_msg}] </H2> \n"; exit; } // echo "<H1> Acquired token $token </H1> \n"; // echo "<H2> $qscriptdir = $qscriptdir </H2> \n"; //----------------------------------------------------------- $qfile = tempnam($ramfsdir, "_tempf_"); $opfile = tempnam($ramfsdir, "_tempf_"); $errfile = tempnam($ramfsdir, "_tempf_"); json_to_q($query, $qfile); putenv("Q_DOCROOT={$q_docroot}"); $command = "bash {$qfile} 1>{$opfile} 2>{$errfile} \n"; $errfile = tempnam($ramfsdir, "_tempf_"); $rslt = system($command, $status); if ($status == 0 && filesize($errfile) == 0) { header("HTTP/1.1 200 OK "); switch ($query) { case "q1": $str = trim(file_get_contents($tempfile)); $X = array('n' => $str); break; case "q2": $fp = fopen($tempfile, "r"); if (!$fp) { getout("");
header("HTTP/1.1 500 Internal Server Error"); echo "<H1> Problem with Inputs </H1> \n"; echo "<H2> Error = [{$err_msg}] </H2> \n"; exit; } $qfile = tempnam($ramfsdir, "_tempf_"); if ($optflag == "O3") { $rslt = json_to_q_O3($query, $qfile); } else { if ($optflag == "GPU") { /* $rslt = json_to_q_GPU($query, $qfile); $rslt = false; */ } else { $rslt = json_to_q($query, $qfile); } } if ($rslt === false) { header("HTTP/1.1 500 Internal Server Error"); echo "<H2> Error = [Malformed json query ] </H2> \n"; exit; } $suffix = "/" . microtime() . getmypid(); $suffix = str_replace(" ", "", $suffix); $suffix = str_replace(".", "", $suffix); $lcl_docroot = $glbl_docroot . $suffix; $lcl_dsk_data_dir = $glbl_dsk_data_dir . $suffix; $lcl_ram_data_dir = $glbl_ram_data_dir . $suffix; if (!mkdir($lcl_docroot)) { $is_err = true;
printf($ofp, "q f_to_s {$tbl} x sum \n"); } else { printf($ofp, "q get_nR {$tbl}\n"); } } fprintf($ofp, "q delete {$tbl} x:y \n"); fprintf($ofp, "q delete {$grpbytbl} cnt:xidx \n"); fclose($ofp); return true; } $is_cli = true; if ($is_cli) { if ($argc != 3) { echo "Usage is " . $argv[0] . " <in.json> <out.q> \n"; exit; } $infile = $argv[1]; $str = file_get_contents($infile); if (!is_file($infile)) { echo "file not found [{$infile}]\n"; exit; } $opfile = $argv[2]; $instr = file_get_contents($infile); $rslt = json_to_q($instr, $opfile); if ($rslt === true) { echo "Created {$opfile} from {$infile} \n"; } else { echo "Error in infile \n"; } }