From: Howard Chu Date: Thu, 21 Jun 2018 23:30:33 +0000 (+0100) Subject: ITS#8868 don't convert IDL to range needlessly X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=8568716376ed129f6f16ac1ebee0f77b9d82e7a1;p=openldap ITS#8868 don't convert IDL to range needlessly in idl_intersection. It may lose precision in a subsequent union. --- diff --git a/servers/slapd/back-bdb/idl.c b/servers/slapd/back-bdb/idl.c index c8901431b2..fec46e6805 100644 --- a/servers/slapd/back-bdb/idl.c +++ b/servers/slapd/back-bdb/idl.c @@ -1085,18 +1085,11 @@ bdb_idl_intersection( } /* If a range completely covers the list, the result is - * just the list. If idmin to idmax is contiguous, just - * turn it into a range. + * just the list. */ if ( BDB_IDL_IS_RANGE( b ) && BDB_IDL_RANGE_FIRST( b ) <= BDB_IDL_FIRST( a ) && BDB_IDL_RANGE_LAST( b ) >= BDB_IDL_LLAST( a ) ) { - if (idmax - idmin + 1 == a[0]) - { - a[0] = NOID; - a[1] = idmin; - a[2] = idmax; - } goto done; } diff --git a/servers/slapd/back-mdb/idl.c b/servers/slapd/back-mdb/idl.c index 3455fe2d60..b297ec8a13 100644 --- a/servers/slapd/back-mdb/idl.c +++ b/servers/slapd/back-mdb/idl.c @@ -711,18 +711,11 @@ mdb_idl_intersection( } /* If a range completely covers the list, the result is - * just the list. If idmin to idmax is contiguous, just - * turn it into a range. + * just the list. */ if ( MDB_IDL_IS_RANGE( b ) && MDB_IDL_RANGE_FIRST( b ) <= MDB_IDL_FIRST( a ) && MDB_IDL_RANGE_LAST( b ) >= MDB_IDL_LLAST( a ) ) { - if (idmax - idmin + 1 == a[0]) - { - a[0] = NOID; - a[1] = idmin; - a[2] = idmax; - } goto done; }