<?php
$check=static function($ok,$reason){if(!$ok)throw new RuntimeException($reason);};
$resolve=static function($value,$plan)use($check){if(is_array($value)){$check(array_keys($value)===['payload_ref']&&array_key_exists($value['payload_ref'],$plan['payloads']),'Exact payload ref');return $plan['payloads'][$value['payload_ref']];}return $value;};
$validate=static function($plan,$lane)use($check,$resolve){
 $check(in_array($lane,['B','C'],true),'Lane B/C');$spec=$plan['lanes'][$lane];$table=$lane==='B'?'cdx_ss7_2b261011':'ZHCT_APP.CDX_SS7_2B261011';
 $check($spec['table']===$table,'Exact2B namespace');$check(count($plan['columns'])===77&&count(array_unique($plan['columns']))===77,'Full77 columns');$check(count($spec['cases'])===108,'Exact108 cases');
 $check($plan['max_rows_each']===1&&$plan['lease_ids']===[1,2]&&$plan['business_DDL_DML_HTTP']===0,'Scope/lease');
 $entries=['SEED'=>$spec['seed']];$coverage=[];foreach($spec['cases']as $case){$entries[$case['label'].'.reset']=$case['reset'];$entries[$case['label'].'.mutation']=$case['mutation'];if(isset($case['field_coverage']))$coverage[]=$case['field_coverage'];}
 $expected=array_values(array_diff($plan['columns'],['UPDATE_TIME']));sort($expected);sort($coverage);$check($coverage===$expected,'Actual FIELD76 coverage');
 foreach($entries as $label=>$statement){
  $check(substr_count($statement['SQL'],'?')===count($statement['binds'])&&count($statement['binds'])===count($statement['PDO_types']),'Exact placeholders/binds');
  foreach($statement['binds']as $i=>$encoded){$v=$resolve($encoded,$plan);$check(is_string($v)||is_int($v)||$v===null,'No float bind');$type=$v===null?PDO::PARAM_NULL:(is_int($v)?PDO::PARAM_INT:PDO::PARAM_STR);$check($type===$statement['PDO_types'][$i],'Exact PDO type');}
  if($label==='SEED'){$check(strpos($statement['SQL'],'INSERT INTO '.$table.' (')===0&&count($statement['columns'])===76&&!in_array('UPDATE_TIME',$statement['columns'],true),'Seed own76/default time');continue;}
  $pattern='~^UPDATE '.preg_quote($table,'~').' SET (.+) WHERE [`"]ID[`"]=\\?$~';
  $check(preg_match($pattern,$statement['SQL'],$m)===1,'Exact scoped UPDATE/PK WHERE');$setFields=[];
  foreach(explode(',',$m[1])as $assignment){$check(preg_match('~^([`"])([A-Z0-9_]+)\\1=(?:\\?|\\1\\2\\1)$~',$assignment,$a)===1,'SET only placeholder or column self');$check(in_array($a[2],$plan['columns'],true),'SET field whitelist');$setFields[]=$a[2];}
  $check(count($setFields)===count(array_unique($setFields)),'No duplicate SET');$check(end($statement['binds'])===1,'Own WHERE id1 only');
  if(substr($label,-6)==='.reset'){$check($setFields===$plan['columns']&&count($statement['binds'])===78,'Reset all77');$check($statement['binds'][array_search('UPDATE_TIME',$plan['columns'],true)]==='2001-01-01 00:00:00','Explicit anchor reset');}
 }
 $check(count($entries)===217,'Exact max217 operations');return true;
};
$lane=getenv('SS_LANE');$validate($plan,$lane);
if(getenv('SS_GATE_TEST')==='1'){
 $bad=[];$v=$plan;$v['lanes'][$lane]['table']='YDY_STAFF';$bad[]=$v;
 $v=$plan;$v['lanes'][$lane]['cases'][0]['reset']['SQL']=preg_replace('/ WHERE .*$/','',$v['lanes'][$lane]['cases'][0]['reset']['SQL']);$bad[]=$v;
 $v=$plan;$v['lanes'][$lane]['cases'][0]['mutation']['SQL']=str_replace('UUID','FORBIDDEN_COLUMN',$v['lanes'][$lane]['cases'][0]['mutation']['SQL']);$bad[]=$v;
 $v=$plan;$v['lanes'][$lane]['cases'][0]['mutation']['binds'][1]=44641;$bad[]=$v;
 $v=$plan;$v['lanes'][$lane]['seed']['binds'][0]=1.5;$bad[]=$v;
 $v=$plan;$v['lanes'][$lane]['cases'][0]['reset']['binds'][array_search('UPDATE_TIME',$plan['columns'],true)]=null;$bad[]=$v;
 $v=$plan;array_pop($v['lanes'][$lane]['cases']);$bad[]=$v;
 $v=$plan;$v['lanes'][$lane]['cases'][0]['mutation']['PDO_types'][0]=1;$bad[]=$v;
 $v=$plan;$v['lanes'][$lane]['cases'][0]['mutation']['binds'][0]=['payload_ref'=>'UNKNOWN'];$bad[]=$v;
 $v=$plan;$v['lanes'][$lane]['cases'][0]['field_coverage']='UPDATE_TIME';$bad[]=$v;
 $rejected=0;foreach($bad as $v){try{$validate($v,$lane);}catch(Throwable $e){$rejected++;}}
 $check($rejected===10,'Native counterexample rejection');echo json_encode(['native_gate'=>true,'lane'=>$lane,'mutations_rejected'=>$rejected,'SQL'=>0,'PDO_connections'=>0]),"\n";exit(0);
}
$lane=getenv('SS_LANE');$root=getenv('SS_ROOT');$cfg=(static function($file){return require $file;})($root.'/application/database.php');
if($lane==='B'){$local=require '/workspace/zhct/zhctproject/store/application/config/local/database.php';foreach(['hostname','database','username','password']as $key)if((string)$cfg[$key]!==$local[$key])throw new RuntimeException('Not code local');$dsn='mysql:host='.$cfg['hostname'].';port='.($cfg['hostport']?:3306).';dbname='.$cfg['database'].';charset=utf8mb4';}
else{if($cfg['hostname']!=='127.0.0.1'||(string)$cfg['hostport']!=='5237'||$cfg['database']!=='ZHCT_APP')throw new RuntimeException('Not nonprod5237/ZHCT_APP');$dsn='dm:host=127.0.0.1;port=5237;schema=ZHCT_APP';}
$db=new PDO($dsn,$cfg['username'],$cfg['password'],[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_CASE=>PDO::CASE_LOWER,PDO::ATTR_STRINGIFY_FETCHES=>false,PDO::ATTR_EMULATE_PREPARES=>false]);

$reads=0;$ddl=0;$dml=0;$created=false;$indexCreated=false;$triggerCreated=false;$creationCompleted=false;$cleanupStarted=false;$ddlUnknown=false;$readJournal=[];$last=[];$fixedMeta=null;
$emit=static function($kind,$data){$encoded=json_encode(['kind'=>$kind,'data'=>$data],JSON_UNESCAPED_UNICODE|JSON_PRESERVE_ZERO_FRACTION);if($encoded===false)throw new RuntimeException('JSON evidence encode failed: '.json_last_error_msg());echo $encoded,"\n";flush();};
$read=static function($sql,$args=[])use($db,&$reads,&$readJournal,$check){
 $check(preg_match('/^SELECT\\b/i',$sql)||$sql==='SHOW WARNINGS','SELECT/approved diagnostic only');$reads++;$check($reads<=650,'SELECT cap650');
 $entry=['SQL'=>$sql,'bindings'=>array_map(static function($v){return ['value'=>$v,'type'=>$v===null?0:(is_int($v)?1:2)];},$args)];
 try{$s=$db->prepare($sql);foreach($args as $i=>$v)$s->bindValue($i+1,$v,$v===null?PDO::PARAM_NULL:(is_int($v)?PDO::PARAM_INT:PDO::PARAM_STR));$s->execute();$rows=$s->fetchAll(PDO::FETCH_ASSOC);$check(count($rows)<=1000,'Metadata/aggregate cap1000');foreach($rows as &$row){$row=array_change_key_case($row,CASE_LOWER);foreach($row as &$v)if(is_resource($v))$v=stream_get_contents($v);unset($v);}unset($row);$entry['ok']=true;$readJournal[]=$entry;return $rows;}catch(Throwable $e){$entry['error']=$e->getMessage();$readJournal[]=$entry;throw $e;}
};
$spec=$plan['lanes'][$lane];$table=$spec['table'];$short=$lane==='B'?'cdx_ss7_2b261011':'CDX_SS7_2B261011';$index='UX_CDX_SS7_2B_USERID';$trigger='TRG_CDX_SS7_2B_TIME';$pk='PK_CDX_SS7_2B';$checks=['CK_CDX_SS7_2B_U64','CK_CDX_SS7_2B_ASCII'];
$definition=static function($columns,$lane){
 $keys=$lane==='B'?['column_name','column_type','is_nullable','column_default','extra','character_set_name','collation_name','character_maximum_length','character_octet_length','numeric_precision','numeric_scale','datetime_precision','column_key','ordinal_position']:['column_name','data_type','data_length','data_precision','data_scale','nullable','data_default','char_length','char_used'];$result=[];
 foreach($columns as $column){$name=strtolower($column['column_name']);$item=[];foreach($keys as $key)$item[$key]=$key==='column_name'?$name:($column[$key]??null);$result[$name]=$item;}ksort($result);return $result;
};
$collision=static function()use($read,$lane,$short,$index,$trigger,$pk,$checks){
 if($lane==='B')return ['table'=>$read('SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=?',[$short]),'indexes'=>$read('SELECT INDEX_NAME FROM information_schema.STATISTICS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=?',[$short]),'triggers'=>$read('SELECT TRIGGER_NAME FROM information_schema.TRIGGERS WHERE EVENT_OBJECT_SCHEMA=DATABASE() AND EVENT_OBJECT_TABLE=?',[$short])];
 return ['table'=>$read('SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME=?',[$short]),'indexes'=>$read('SELECT INDEX_NAME,TABLE_NAME FROM USER_INDEXES WHERE TABLE_NAME=? OR INDEX_NAME IN (?,?)',[$short,$index,$pk]),'triggers'=>$read('SELECT TRIGGER_NAME,TABLE_NAME FROM USER_TRIGGERS WHERE TABLE_NAME=? OR TRIGGER_NAME=?',[$short,$trigger]),'constraints'=>$read('SELECT CONSTRAINT_NAME,TABLE_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME=? OR CONSTRAINT_NAME IN (?,?,?)',[$short,$pk,$checks[0],$checks[1]]),'objects'=>$read('SELECT OBJECT_NAME,OBJECT_TYPE,STATUS FROM USER_OBJECTS WHERE OBJECT_NAME IN (?,?,?,?,?,?)',[$short,$index,$trigger,$pk,$checks[0],$checks[1]])];
};
$business=static function()use($read,$lane){
 $t=$lane==='B'?'ydy_staff':'YDY_STAFF';$out=[];
 if($lane==='B'){
  $out['columns']=$read('SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=? ORDER BY ORDINAL_POSITION',[$t]);
  $out['indexes']=$read('SELECT * FROM information_schema.STATISTICS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=? ORDER BY INDEX_NAME,SEQ_IN_INDEX',[$t]);
  $out['constraints']=$read('SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=? ORDER BY CONSTRAINT_NAME',[$t]);
  $out['keys']=$read('SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA=DATABASE() AND (TABLE_NAME=? OR REFERENCED_TABLE_NAME=?) ORDER BY TABLE_NAME,CONSTRAINT_NAME,ORDINAL_POSITION',[$t,$t]);
  $out['triggers']=$read('SELECT * FROM information_schema.TRIGGERS WHERE EVENT_OBJECT_SCHEMA=DATABASE() AND EVENT_OBJECT_TABLE=?',[$t]);
 }else{
  $out['columns']=$read('SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME=? ORDER BY COLUMN_ID',[$t]);
  $out['indexes']=$read('SELECT INDEX_NAME,INDEX_TYPE,UNIQUENESS,TABLE_NAME FROM USER_INDEXES WHERE TABLE_NAME=? ORDER BY INDEX_NAME',[$t]);
  $out['index_columns']=$read('SELECT * FROM USER_IND_COLUMNS WHERE TABLE_NAME=? ORDER BY INDEX_NAME,COLUMN_POSITION',[$t]);
  $out['constraints']=$read('SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME=? ORDER BY CONSTRAINT_NAME',[$t]);
  $out['constraint_columns']=$read('SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME=? ORDER BY CONSTRAINT_NAME,POSITION',[$t]);
  $out['triggers']=$read('SELECT * FROM USER_TRIGGERS WHERE TABLE_NAME=?',[$t]);
 }
 $names=array_map('strtolower',array_column($out['columns'],'column_name'));$fields=['COUNT(*) AS TOTAL'];
 foreach(['dingtalk_avatar','update_time','dingtalk_userid','primary_department_uuid','dingtalk_last_seen_full_batch_id','dingtalk_sync_time','dingtalk_sync_md5']as $name){
  if(!in_array($name,$names,true))continue;$col=$lane==='B'?chr(96).$name.chr(96):'"'.strtoupper($name).'"';
  $fields[]='SUM(CASE WHEN '.$col.' IS NULL THEN 1 ELSE 0 END) AS '.$name.'_NULLS';
  if(in_array($name,['update_time','dingtalk_sync_time'],true)){
   $e=$lane==='B'?"DATE_FORMAT(".$col.",'%Y-%m-%d %H:%i:%s.%f')":"TO_CHAR(".$col.",'YYYY-MM-DD HH24:MI:SS.FF6')";
   $fields[]='MIN('.$e.') AS '.$name.'_MIN';$fields[]='MAX('.$e.') AS '.$name.'_MAX';
  }elseif($name==='dingtalk_last_seen_full_batch_id'){
   $cast=$lane==='B'?'CHAR':'VARCHAR(40)';$fields[]='CAST(MIN('.$col.') AS '.$cast.') AS '.$name.'_MIN';$fields[]='CAST(MAX('.$col.') AS '.$cast.') AS '.$name.'_MAX';
  }else{
   $chars=$lane==='B'?'CHAR_LENGTH':'LENGTH';$bytes=$lane==='B'?'OCTET_LENGTH':'LENGTHB';
   $fields[]='MAX('.$chars.'('.$col.')) AS '.$name.'_CHARS';$fields[]='MAX('.$bytes.'('.$col.')) AS '.$name.'_BYTES';$fields[]='COUNT(DISTINCT '.$col.') AS '.$name.'_DISTINCT';
  }
 }
 $out['aggregate']=$read('SELECT '.implode(',',$fields).' FROM '.$t);
 return $out;
};


$meta=static function()use($read,$lane,$short,$trigger){
 if($lane==='B')return ['columns'=>$read('SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=? ORDER BY ORDINAL_POSITION',[$short]),'indexes'=>$read('SELECT * FROM information_schema.STATISTICS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=? ORDER BY INDEX_NAME,SEQ_IN_INDEX',[$short]),'constraints'=>$read('SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=? ORDER BY CONSTRAINT_NAME',[$short]),'keys'=>$read('SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=? ORDER BY CONSTRAINT_NAME,ORDINAL_POSITION',[$short]),'triggers'=>$read('SELECT * FROM information_schema.TRIGGERS WHERE EVENT_OBJECT_SCHEMA=DATABASE() AND EVENT_OBJECT_TABLE=?',[$short])];
 return ['columns'=>$read('SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME=? ORDER BY COLUMN_ID',[$short]),'indexes'=>$read('SELECT INDEX_NAME,INDEX_TYPE,UNIQUENESS,TABLE_NAME FROM USER_INDEXES WHERE TABLE_NAME=? ORDER BY INDEX_NAME',[$short]),'index_columns'=>$read('SELECT * FROM USER_IND_COLUMNS WHERE TABLE_NAME=? ORDER BY INDEX_NAME,COLUMN_POSITION',[$short]),'expressions'=>$read('SELECT * FROM USER_IND_EXPRESSIONS WHERE TABLE_NAME=?',[$short]),'constraints'=>$read('SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME=? ORDER BY CONSTRAINT_NAME',[$short]),'constraint_columns'=>$read('SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME=? ORDER BY CONSTRAINT_NAME,POSITION',[$short]),'triggers'=>$read('SELECT * FROM USER_TRIGGERS WHERE TABLE_NAME=?',[$short]),'trigger_objects'=>$read('SELECT OBJECT_NAME,OBJECT_TYPE,STATUS FROM USER_OBJECTS WHERE OBJECT_NAME=?',[$trigger]),'trigger_errors'=>$read('SELECT * FROM USER_ERRORS WHERE NAME=?',[$trigger])];
};
$fingerprint=static function($meta)use($definition,$lane){$out=$meta;$out['columns']=$definition($meta['columns'],$lane);if($lane==='B')foreach($out['indexes']as &$indexRow){unset($indexRow['cardinality']);}unset($indexRow);return $out;};
$assertOwn=static function($rows)use($check){$check(count($rows)<=1,'Own max1 row');foreach($rows as $row)$check(in_array((int)$row['id'],[1,2],true)&&is_string($row['uuid'])&&strpos($row['uuid'],'CDXSS2B')===0,'Own lease/UUID marker');};
$own=static function()use($read,$spec,$assertOwn){$rows=$read($spec['readback_SQL']);$assertOwn($rows);return $rows;};
$expand=static function($statement)use($resolve,$plan){$out=['SQL'=>$statement['SQL'],'binds'=>[],'PDO_types'=>$statement['PDO_types']];foreach($statement['binds']as $value)$out['binds'][]=$resolve($value,$plan);return $out;};
$operations=['SEED'=>$expand($spec['seed'])];foreach($spec['cases']as $case){$operations[$case['label'].'.reset']=$expand($case['reset']);$operations[$case['label'].'.mutation']=$expand($case['mutation']);}
$allowedDDL=array_values(array_filter(array_merge([$spec['create_table'],$spec['create_unique_index'],$spec['create_trigger']],$spec['cleanup'])));
$execDDL=static function($sql)use($db,$allowedDDL,$check,$emit,&$ddl,&$ddlUnknown,$lane){$check(in_array($sql,$allowedDDL,true),'Exact approved2B DDL');$ddl++;$check($ddl<=($lane==='B'?2:6),'DDL cap');$emit('DDL-start',['SQL'=>$sql,'sha256'=>hash('sha256',$sql)]);try{$s=$db->prepare($sql);$s->execute();$emit('DDL-success',['SQL'=>$sql]);}catch(Throwable $e){$ddlUnknown=true;$emit('DDL-error',['SQL'=>$sql,'code'=>$e->getCode(),'message'=>$e->getMessage()]);throw $e;}};
$execDML=static function($operation,$statement,$before)use($db,$operations,$check,$emit,&$dml){
 $check(isset($operations[$operation])&&$statement===$operations[$operation],'Exact operation/SQL/full binds');$dml++;$check($dml<=217,'DML max217');
 $entry=['operation'=>$operation,'SQL'=>$statement['SQL'],'bindings'=>[],'before'=>$before];foreach($statement['binds']as $i=>$v)$entry['bindings'][]=['value'=>$v,'type'=>$statement['PDO_types'][$i]];$emit('DML-start',$entry);
 try{$s=$db->prepare($statement['SQL']);foreach($entry['bindings']as $i=>$bind)$s->bindValue($i+1,$bind['value'],$bind['type']);$entry['ok']=$s->execute();$entry['rowCount']=$s->rowCount();}catch(Throwable $e){$entry['ok']=false;$entry['error']=['class'=>get_class($e),'code'=>$e->getCode(),'message'=>$e->getMessage()];}return $entry;
};
$decimal=static function($value){if($value===null)return null;$s=(string)$value;if(!preg_match('/^([+-]?)([0-9]+)(?:\\.([0-9]*))?(?:[eE]([+-]?[0-9]+))?$/',$s,$m))return ['invalid_decimal_text'=>$s];$digits=$m[2].($m[3]??'');$point=strlen($m[2])+(int)($m[4]??0);if($point<0){$digits=str_repeat('0',-$point).$digits;$point=0;}if($point>strlen($digits))$digits.=str_repeat('0',$point-strlen($digits));$whole=ltrim(substr($digits,0,$point),'0');$fraction=rtrim(substr($digits,$point),'0');$out=($whole===''?'0':$whole).($fraction===''?'':'.'.$fraction);return (($m[1]??'')==='-'&&$out!=='0'?'-':'').$out;};
$sourceTypes=[];foreach($expected['B']['columns']as $column)$sourceTypes[strtoupper($column['column_name'])]=$column['column_type'];
$compareValues=static function($rows,$values,$ignoreTime=false)use($sourceTypes,$decimal,$plan,$resolve){
 $fail=[];if(count($rows)!==1)return ['row_count'];$row=$rows[0];
 foreach($plan['columns']as $field){if($ignoreTime&&$field==='UPDATE_TIME')continue;$wanted=$resolve($values[$field],$plan);$name=strtolower($field);$type=$sourceTypes[$field];
  if(preg_match('/^(?:char|varchar|mediumtext)/i',$type)){if(preg_match('/^char/i',$type)&&$wanted!==null)$wanted=rtrim($wanted,' ');$actual=$row[$name];if($actual!==$wanted)$fail[]=$field;}
  elseif(preg_match('/^datetime/i',$type)){$actual=$row['__canon_'.$name];$wanted=$wanted===null?null:$wanted.'.000000';if($actual!==$wanted)$fail[]=$field;}
  elseif(preg_match('/^date/i',$type)){$actual=$row['__canon_'.$name];if($actual!==$wanted)$fail[]=$field;}
  else{if($decimal($row['__num_'.$name])!==$decimal($wanted))$fail[]=$field;}
 }return $fail;
};
$details=static function($rows)use($sourceTypes){
 $out=[];foreach($rows as $row){$item=['id'=>$row['id'],'native_types'=>[],'string_bytes'=>[]];foreach($sourceTypes as $field=>$type){$name=strtolower($field);$v=$row[$name];$item['native_types'][$name]=gettype($v);if(is_string($v))$item['string_bytes'][$name]=['bytes'=>strlen($v),'sha256'=>hash('sha256',$v)];} $lob=$row['sport_event_uuid'];$item['CLOB_full']=['native_type'=>gettype($lob),'bytes'=>$lob===null?null:strlen($lob),'sha256'=>$lob===null?null:hash('sha256',$lob),'unicode_codepoints'=>$lob===null?null:preg_match_all('/./us',$lob,$unused)];$out[]=$item;}return $out;
};
$timeOutcome=static function($rows,$expectedTime,$window,$explicit=null)use($check){
 if(count($rows)!==1)return ['matched'=>false,'reason'=>'No exact own row'];$native=$rows[0]['update_time'];$canonical=$rows[0]['__canon_update_time'];$second=is_string($canonical)?substr($canonical,0,19):null;$zero=is_string($canonical)&&substr($canonical,19)==='.000000';$format=is_string($native)&&strlen($native)===19&&$native===$second;
 if($expectedTime==='advance_to_own_DB_window')$ok=$zero&&$second>='2001-01-01 00:00:01'&&$second>=$window['before'][0]['db_time']&&$second<=$window['after'][0]['db_time'];
 elseif($expectedTime==='explicit_value')$ok=$zero&&$second===$explicit;
 elseif($expectedTime==='preserve_anchor')$ok=$zero&&$second==='2001-01-01 00:00:00';else$ok=null;
 return ['expected'=>$expectedTime,'native'=>$native,'canonical'=>$canonical,'fsp0_native19'=>$format,'window'=>$window,'matched'=>$ok];
};
$baseline=null;$caseResults=[];
try{
 $baseline=$business();$emit('business-before',$baseline);$freshDefs=$definition($baseline['columns'],$lane);$expectedDefs=$definition($expected[$lane]['columns'],$lane);$check($freshDefs===$expectedDefs,'Fresh Staff full per-column original definitions');$check(count($baseline['columns'])===($lane==='B'?77:70),'Source77/target70');$check((int)$baseline['aggregate'][0]['total']===($lane==='B'?40930:2103),'Known Staff aggregate count');$check($baseline['triggers']===[],'No source/target Staff trigger newly introduced');
 if($lane==='B'){$sport=$freshDefs['sport_event_uuid'];$check($sport['column_type']==='mediumtext'&&$sport['character_octet_length']===16777215&&$sport['character_set_name']==='utf8mb4','Source actual MEDIUMTEXT utf8mb4 capacity');}
 else{$dependency=['length'=>$read('SELECT DBMS_LOB.GETLENGTH(TO_CLOB(?)) AS L',['A']),'chunk'=>$read('SELECT RAWTOHEX(CHARTOBIN(DBMS_LOB.SUBSTR(TO_CLOB(?),256,1))) AS H',['A'])];$emit('dependency',$dependency);$check((int)$dependency['length'][0]['l']===1&&$dependency['chunk'][0]['h']==='41','Existing package dependency, no install');}
 $objects=$collision();$emit('collision-before',$objects);foreach($objects as $rows)$check($rows===[],'Exact own objects collision0');
 $execDDL($spec['create_table']);$created=true;$initial=$meta();$emit('metadata-created-table',$initial);$check(array_map('strtoupper',array_column($initial['columns'],'column_name'))===$plan['columns'],'Full ordered77 shadow columns');
 $shadowDefs=$definition($initial['columns'],$lane);if($lane==='B')$check($shadowDefs===$freshDefs,'B LIKE exact full77 column definitions');
 else{$oldDefs=array_intersect_key($shadowDefs,$freshDefs);$check($oldDefs===$freshDefs,'C all70 original column definitions preserved');}
 if($spec['create_unique_index']){$execDDL($spec['create_unique_index']);$indexCreated=true;$emit('metadata-created-index',$meta());}
 if($spec['create_trigger']){$execDDL($spec['create_trigger']);$triggerCreated=true;}
 $fixedMeta=$meta();$creationCompleted=true;$emit('metadata-created-final',$fixedMeta);
 if($lane==='C'){$check(count($fixedMeta['triggers'])===1&&$fixedMeta['triggers'][0]['trigger_name']===$trigger&&$fixedMeta['triggers'][0]['status']==='Y','Native trigger status Y');$check($fixedMeta['trigger_errors']===[],'Actual compile errors0');$body=$fixedMeta['triggers'][0]['trigger_body'];$check(substr($body,strpos($body,'FOR EACH ROW')+strlen('FOR EACH ROW'))===substr($spec['create_trigger'],strpos($spec['create_trigger'],'FOR EACH ROW')+strlen('FOR EACH ROW')),'Full actual trigger body after canonical header');}
 $window=['before'=>$read($spec['clock_SQL'])];$entry=$execDML('SEED',$operations['SEED'],[]);$window['after']=$read($spec['clock_SQL']);$last=$own();$entry['after']=$last;$entry['details']=$details($last);$entry['time']=$timeOutcome($last,'advance_to_own_DB_window',$window);$entry['value_mismatches']=$compareValues($last,$plan['baseline_values'],true);$emit('DML-result',$entry);
 foreach($spec['cases']as $case){
  if(count($last)!==1||(int)$last[0]['id']!==1){$emit('skipped',['label'=>$case['label'],'phase'=>'reset-and-mutation','reason'=>'Own dependency id1 missing']);continue;}
  $entry=$execDML($case['label'].'.reset',$operations[$case['label'].'.reset'],$last);$last=$own();$values=array_merge($plan['baseline_values'],$case['reset_overrides']);$entry['after']=$last;$entry['details']=$details($last);$entry['value_mismatches']=$compareValues($last,$values);$emit('DML-result',$entry);
  if(!$entry['ok']||$entry['value_mismatches']!==[]){$emit('skipped',['label'=>$case['label'],'phase'=>'mutation','reason'=>'Reset failure or unexpected physical values','reset_ok'=>$entry['ok'],'mismatches'=>$entry['value_mismatches']]);continue;}
  $window=['before'=>$read($spec['clock_SQL'])];$entry=$execDML($case['label'].'.mutation',$operations[$case['label'].'.mutation'],$last);
  if($lane==='B'&&!empty($case['observe_warnings_B']))$entry['warnings']=$read('SHOW WARNINGS');
  $window['after']=$read($spec['clock_SQL']);$last=$own();$entry['after']=$last;$entry['details']=$details($last);$afterValues=array_merge($values,$case['set_values']);$entry['value_mismatches']=!empty($case['invalid_source'])?null:$compareValues($last,$afterValues,true);$entry['time']=$timeOutcome($last,$case['expected_time'],$window,$case['explicit_time']??null);$entry['invalid_source_observe_only']=!empty($case['invalid_source']);$emit('DML-result',$entry);$caseResults[]=['label'=>$case['label'],'ok'=>$entry['ok'],'values'=>$entry['value_mismatches'],'time'=>$entry['time']['matched']];
 }
 $current=$meta();$emit('metadata-before-cleanup',$current);$check($fingerprint($current)===$fingerprint($fixedMeta),'Full actual native structural schema/index/trigger fingerprint before cleanup');$emit('schema-fingerprint',['structural_exact'=>true,'full_metadata_including_statistics_exact'=>$current===$fixedMeta]);$check($own()===$last,'Own exact final rows before cleanup');$emit('own-final',$last);$cleanupStarted=true;
 foreach($spec['cleanup']as $sql)$execDDL($sql);$created=false;$indexCreated=false;$triggerCreated=false;
 $objects=$collision();$emit('collision-after',$objects);foreach($objects as $rows)$check($rows===[],'All own table/index/trigger/constraint objects0');
 $final=$business();$emit('business-after',$final);$emit('read-journal',$readJournal);$emit('summary',['lane'=>$lane,'completed'=>true,'DML_attempts'=>$dml,'DDL_attempts'=>$ddl,'SELECT'=>$reads,'HTTP'=>0,'business_table_writes'=>0,'Staff_metadata_aggregate_exact'=>$final===$baseline,'objects_remaining'=>0,'case_results'=>$caseResults,'known_driver_and_invalid_domain_differences_not_hidden'=>true]);
}catch(Throwable $e){$emit('read-journal',$readJournal);$emit('stopped',['lane'=>$lane,'class'=>get_class($e),'message'=>$e->getMessage(),'table_created'=>$created,'index_created'=>$indexCreated,'trigger_created'=>$triggerCreated,'creation_completed'=>$creationCompleted,'cleanup_started'=>$cleanupStarted,'DDL_unknown'=>$ddlUnknown,'DML_attempts'=>$dml,'DDL_attempts'=>$ddl,'SELECT'=>$reads]);exit(1);}
