Skip to content

Commit

Permalink
[CBRD-25053] [Regression] Core dumped in tp_is_domain_cached at src/o…
Browse files Browse the repository at this point in the history
…bject/object_domain.c:2276 (#4765) (#5138)

http://jira.cubrid.org/browse/CBRD-25053

This is a backport for 11.3 patch.
  • Loading branch information
beyondykk9 authored Apr 22, 2024
1 parent 71b731f commit ec06cff
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/object/object_domain.c
Original file line number Diff line number Diff line change
Expand Up @@ -2242,6 +2242,7 @@ tp_is_domain_cached (TP_DOMAIN * dlist, TP_DOMAIN * transient, TP_MATCH exact, T
}

match = ((domain->precision == transient->precision) && (domain->collation_id == transient->collation_id)
&& (domain->codeset == transient->codeset)
&& (domain->is_desc == transient->is_desc)
&& (domain->collation_flag == transient->collation_flag));
}
Expand All @@ -2252,6 +2253,7 @@ tp_is_domain_cached (TP_DOMAIN * dlist, TP_DOMAIN * transient, TP_MATCH exact, T
* string without modification.
*/
match = ((domain->precision >= transient->precision) && (domain->collation_id == transient->collation_id)
&& (domain->codeset == transient->codeset)
&& (domain->is_desc == transient->is_desc)
&& (domain->collation_flag == transient->collation_flag));
}
Expand All @@ -2266,6 +2268,7 @@ tp_is_domain_cached (TP_DOMAIN * dlist, TP_DOMAIN * transient, TP_MATCH exact, T
* destination domain tolerance.
*/
match = ((domain->collation_id == transient->collation_id) && (domain->is_desc == transient->is_desc)
&& (domain->codeset == transient->codeset)
&& (domain->collation_flag == transient->collation_flag));
}

Expand Down Expand Up @@ -2379,6 +2382,7 @@ tp_is_domain_cached (TP_DOMAIN * dlist, TP_DOMAIN * transient, TP_MATCH exact, T
}

match = ((domain->precision == transient->precision) && (domain->collation_id == transient->collation_id)
&& (domain->codeset == transient->codeset)
&& (domain->is_desc == transient->is_desc)
&& (domain->collation_flag == transient->collation_flag));
}
Expand All @@ -2389,6 +2393,7 @@ tp_is_domain_cached (TP_DOMAIN * dlist, TP_DOMAIN * transient, TP_MATCH exact, T
* in the DB_TYPE_CHAR case above.
*/
match = ((domain->collation_id == transient->collation_id)
&& (domain->codeset == transient->codeset)
&& (transient->precision == 0 || (transient->precision == TP_FLOATING_PRECISION_VALUE)
|| domain->precision >= transient->precision)
&& (domain->is_desc == transient->is_desc)
Expand Down Expand Up @@ -2419,13 +2424,15 @@ tp_is_domain_cached (TP_DOMAIN * dlist, TP_DOMAIN * transient, TP_MATCH exact, T
}

match = ((domain->precision == transient->precision) && (domain->collation_id == transient->collation_id)
&& (domain->codeset == transient->codeset)
&& (domain->is_desc == transient->is_desc)
&& (domain->collation_flag == transient->collation_flag));
}
else
{
/* see notes above under the DB_TYPE_VARCHAR clause */
match = ((domain->collation_id == transient->collation_id) && (domain->is_desc == transient->is_desc)
&& (domain->codeset == transient->codeset)
&& (domain->collation_flag == transient->collation_flag));
}

Expand Down Expand Up @@ -2681,7 +2688,8 @@ tp_domain_find_charbit (DB_TYPE type, int codeset, int collation_id, unsigned ch
{
break; /* found */
}
else if (dom->collation_id == collation_id && dom->collation_flag == collation_flag)
else if (dom->collation_id == collation_id && dom->collation_flag == collation_flag
&& dom->codeset == codeset)
{
/* codeset should be the same if collations are equal */
assert (dom->codeset == codeset);
Expand Down

0 comments on commit ec06cff

Please sign in to comment.