20 lines
1 KiB
Diff
20 lines
1 KiB
Diff
# UNDF: UNDF-2026-000001164
|
|
--- a/data/SugarBean.php
|
|
+++ b/data/SugarBean.php
|
|
@@ -883,12 +883,13 @@
|
|
//If final_query is still empty, its time to build the sub-queries
|
|
if (empty($final_query)) {
|
|
$subqueries = SugarBean::build_sub_queries_for_union($subpanel_list, $subpanel_def, $parentbean, $order_by);
|
|
$all_fields = array();
|
|
+ $all_fields_set = array(); // O(1) lookup instead of O(N) in_array
|
|
foreach ($subqueries as $i => $subquery) {
|
|
$query_fields = DBManagerFactory::getInstance()->getSelectFieldsFromQuery($subquery['select']);
|
|
foreach ($query_fields as $field => $select) {
|
|
- if (!in_array($field, $all_fields)) {
|
|
+ if (!isset($all_fields_set[$field])) {
|
|
$all_fields[] = $field;
|
|
+ $all_fields_set[$field] = true;
|
|
}
|
|
}
|
|
$subqueries[$i]['query_fields'] = $query_fields;
|
|
}
|