4
4
bool
5
5
irange_intersects (IndexRange a ,IndexRange b )
6
6
{
7
- return (irange_lower (a ) <=irange_upper (b ))||
7
+ return (irange_lower (a ) <=irange_upper (b ))&&
8
8
(irange_lower (b ) <=irange_upper (a ));
9
9
}
10
10
11
11
/* Check if two ranges are conjuncted */
12
12
bool
13
13
irange_conjuncted (IndexRange a ,IndexRange b )
14
14
{
15
- return (irange_lower (a )- 1 <=irange_upper (b ))||
15
+ return (irange_lower (a )- 1 <=irange_upper (b ))&&
16
16
(irange_lower (b )- 1 <=irange_upper (a ));
17
17
}
18
18
@@ -35,6 +35,27 @@ irange_intersect(IndexRange a, IndexRange b)
35
35
irange_is_lossy (a )|| irange_is_lossy (b ));
36
36
}
37
37
38
+ #ifdef NOT_USED
39
+ /* Print range list in debug purposes */
40
+ static char *
41
+ print_irange (List * l )
42
+ {
43
+ ListCell * c ;
44
+ StringInfoData str ;
45
+
46
+ initStringInfo (& str );
47
+
48
+ foreach (c ,l )
49
+ {
50
+ IndexRange ir = lfirst_irange (c );
51
+
52
+ appendStringInfo (& str ,"[%d,%d]%c " ,irange_lower (ir ),irange_upper (ir ),
53
+ irange_is_lossy (ir ) ?'l' :'e' );
54
+ }
55
+ return str .data ;
56
+ }
57
+ #endif
58
+
38
59
/*
39
60
* Make union of two index rage lists.
40
61
*/
@@ -192,6 +213,7 @@ irange_list_intersect(List *a, List *b)
192
213
if (irange_upper (ra ) >=irange_upper (rb ))
193
214
cb = lnext (cb );
194
215
}
216
+
195
217
return result ;
196
218
}
197
219