<?php
declare(strict_types=1);
function FLcatalogSame(array $fresh,array $old):bool {
    foreach($fresh as $i=>$row)foreach(['data_length','data_precision','data_scale','column_position']as $field){
        if(!array_key_exists($field,$row)||!is_float($row[$field])||!is_finite($row[$field])||!is_int($old[$i][$field]??null)||$row[$field] !== (float)$old[$i][$field])continue;
        $small=$row[$field]>=0&&$row[$field]<=1000000;
        $clob=$field==='data_length'&&($row['data_type']??null)==='CLOB'&&in_array($row['column_name']??null,['STRATEGY_SNAPSHOT','QUOTE_SNAPSHOT'],true)&&$row[$field]===2147483647.0&&$old[$i][$field]===2147483647;
        if($small||$clob)$old[$i][$field]=(float)$old[$i][$field];
    }
    return $fresh===$old;
}
