<?php
declare(strict_types=1);

// Existing PDO_DM only; synthetic DUAL SELECTs, no business table or DML.
if (($argv[1] ?? '') !== '--c-read-only') {
    fwrite(STDERR, "DENIED: exact C read-only phase required\n");
    exit(78);
}
$pid = 53772;
$env = [];
foreach (explode("\0", (string)file_get_contents('/proc/' . $pid . '/environ')) as $item) {
    $pair = explode('=', $item, 2);
    if (count($pair) === 2) $env[$pair[0]] = $pair[1];
}
if (($env['POC_TARGET_ROOT'] ?? '') !== '/tmp/zhct-ai-http-20260929.3XDj3w'
    || ($env['POC_DIALECT'] ?? '') !== 'dm'
    || ($env['POC_AI_HOST'] ?? '') !== '127.0.0.1'
    || ($env['POC_AI_PORT'] ?? '') !== '5238'
    || ($env['POC_AI_SCHEMA'] ?? '') !== 'AIZHCT_APP'
    || ($env['POC_AI_USER'] ?? '') !== 'AIZHCT_APP'
    || !in_array('dm', PDO::getAvailableDrivers(), true)) {
    throw new RuntimeException('C worker/database identity drift');
}
$db = new PDO('dm:host=127.0.0.1;port=5238;schema=AIZHCT_APP',
    $env['POC_AI_USER'], $env['POC_AI_PASSWORD'],
    [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
if ($db->query("SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') FROM DUAL")
    ->fetchColumn() !== 'AIZHCT_APP') {
    throw new RuntimeException('C effective schema drift');
}
$queries = [
    'direct_dec30' => "SELECT CAST('9007199254740993.01' AS DECIMAL(30,2)) AS V FROM DUAL",
    'cast_dec30_text' => "SELECT CAST(CAST('9007199254740993.01' AS DECIMAL(30,2)) AS VARCHAR(64)) AS V FROM DUAL",
    'to_char_dec30' => "SELECT TO_CHAR(CAST('9007199254740993.01' AS DECIMAL(30,2))) AS V FROM DUAL",
    'cast_uint64_text' => "SELECT CAST(CAST('18446744073709551615' AS DECIMAL(20,0)) AS VARCHAR(64)) AS V FROM DUAL",
    'cast_sum_text' => "SELECT CAST(SUM(V) AS VARCHAR(64)) AS V FROM (SELECT CAST('9007199254740993.01' AS DECIMAL(30,2)) AS V FROM DUAL UNION ALL SELECT CAST('-1234567890123456.70' AS DECIMAL(30,2)) AS V FROM DUAL) X",
];
$out = [];
foreach ($queries as $label => $sql) {
    if (strpos($sql, 'SELECT ') !== 0) throw new RuntimeException('SELECT-only gate');
    $value = $db->query($sql)->fetchColumn();
    $out[$label] = ['php_type' => gettype($value), 'value' => $value];
}
echo json_encode(['lane' => 'C', 'source' => 'DUAL synthetic constants',
    'results' => $out, 'business_tables_read' => 0,
    'business_http' => 0, 'business_dml' => 0], JSON_UNESCAPED_UNICODE), PHP_EOL;
