catch { mapping(string:int) tst_opt = (["connect_options":2]); dbconn = Sql.Sql( QUERY(db_string)); };
If that block and this block:
catch { dbconn = Sql.Sql( QUERY(db_string)); };
behave differently, it sounds as the Pike version you use might be a bit trigger happy about optimizing away stuff "without side effects". Only grubba can tell. ;-)