示例#1
0
$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("");
示例#2
0
    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;
示例#3
0
            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";
    }
}