On 8-Mar-08, at 11:06 AM, Suresh wrote:

Hello all,

I have a custom code written inside postgres in an application we use.
The snippet is as below :
Here inner plan is an index scan.

  scandesc = ((IndexScanState *)innerPlan)->iss_ScanDesc;

  flag=index_getmulti(scandesc, &tidelm->tid, 1, &ret_tids);

Now consider a query like

explain  select * from dept,manager where did=id ;
                                QUERY PLAN
---------------------------------------------------------------------------
 Nested Loop  (cost=0.00..269.09 rows=45 width=72)
   -> seq scan on manager  (cost=0.00..6.50 rows=45 width=36)
   ->  Index Scan using id1 on dept  (cost=0.00..5.82 rows=1 width=36)
         Index Cond: ("outer".did = dept.id)

Say seq scan retrieves did in the order 30,10, 20.. My doubt is in what order
will index_getmulti return tids. How does the scandesc work ?

Will it return the tids as firstly macthing inners for dept=30, then dept=10 ?

since you have no order by clause in the query rows will be returned in the order they are found on the disc.

Dave
Please help me with this.

Thanks and regards,
Suresh











Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now.

Reply via email to