1313bool
1414irange_intersects (IndexRange a ,IndexRange b )
1515{
16- return (irange_lower (a ) <=irange_upper (b ))||
16+ return (irange_lower (a ) <=irange_upper (b ))&&
1717 (irange_lower (b ) <=irange_upper (a ));
1818}
1919
2020/* Check if two ranges are conjuncted */
2121bool
2222irange_conjuncted (IndexRange a ,IndexRange b )
2323{
24- return (irange_lower (a )- 1 <=irange_upper (b ))||
24+ return (irange_lower (a )- 1 <=irange_upper (b ))&&
2525 (irange_lower (b )- 1 <=irange_upper (a ));
2626}
2727
@@ -44,6 +44,27 @@ irange_intersect(IndexRange a, IndexRange b)
4444irange_is_lossy (a )|| irange_is_lossy (b ));
4545}
4646
47+ #ifdef NOT_USED
48+ /* Print range list in debug purposes */
49+ static char *
50+ print_irange (List * l )
51+ {
52+ ListCell * c ;
53+ StringInfoData str ;
54+
55+ initStringInfo (& str );
56+
57+ foreach (c ,l )
58+ {
59+ IndexRange ir = lfirst_irange (c );
60+
61+ appendStringInfo (& str ,"[%d,%d]%c " ,irange_lower (ir ),irange_upper (ir ),
62+ irange_is_lossy (ir ) ?'l' :'e' );
63+ }
64+ return str .data ;
65+ }
66+ #endif
67+
4768/*
4869 * Make union of two index rage lists.
4970 */