@ -8,7 +8,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $ PostgreSQL : pgsql / src / backend / optimizer / util / restrictinfo . c , v 1.41 .2 .3 2005 / 11 / 22 18 : 23 : 12 momjian Exp $
* $ PostgreSQL : pgsql / src / backend / optimizer / util / restrictinfo . c , v 1.41 .2 .4 2006 / 04 / 07 17 : 05 : 47 tgl Exp $
*
*
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
*/
@ -160,13 +160,44 @@ make_restrictinfo_from_bitmapqual(Path *bitmapqual,
*/
*/
return NIL ;
return NIL ;
}
}
/* Create AND subclause with RestrictInfos */
/*
withris = lappend ( withris ,
* If the sublist contains multiple RestrictInfos , we create an
make_ands_explicit ( sublist ) ) ;
* AND subclause . If there ' s just one , we have to check if it ' s
/* And one without */
* an OR clause , and if so flatten it to preserve AND / OR flatness
sublist = get_actual_clauses ( sublist ) ;
* of our output .
withoutris = lappend ( withoutris ,
*
make_ands_explicit ( sublist ) ) ;
* We construct lists with and without sub - RestrictInfos , so
* as not to have to regenerate duplicate RestrictInfos below .
*/
if ( list_length ( sublist ) > 1 )
{
withris = lappend ( withris , make_andclause ( sublist ) ) ;
sublist = get_actual_clauses ( sublist ) ;
withoutris = lappend ( withoutris , make_andclause ( sublist ) ) ;
}
else
{
RestrictInfo * subri = ( RestrictInfo * ) linitial ( sublist ) ;
Assert ( IsA ( subri , RestrictInfo ) ) ;
if ( restriction_is_or_clause ( subri ) )
{
BoolExpr * subor = ( BoolExpr * ) subri - > orclause ;
Assert ( or_clause ( ( Node * ) subor ) ) ;
withris = list_concat ( withris ,
list_copy ( subor - > args ) ) ;
subor = ( BoolExpr * ) subri - > clause ;
Assert ( or_clause ( ( Node * ) subor ) ) ;
withoutris = list_concat ( withoutris ,
list_copy ( subor - > args ) ) ;
}
else
{
withris = lappend ( withris , subri ) ;
withoutris = lappend ( withoutris , subri - > clause ) ;
}
}
}
}
/*
/*