On Thu, 2019-10-17 at 11:16 +0000, M Tarkeshwar Rao wrote: > [EXTERNAL SOURCE] > > > > Hi all, > > How to fetch certain number of tuples from a postgres table. > > Same I am doing in oracle using following lines by setting prefetch attribute. > > For oracle > // Prepare query > if( OCIStmtPrepare( myOciStatement, myOciError, (text *)aSqlStatement, > // Get statement type > OCIAttrGet( (void *)myOciStatement, OCI_HTYPE_STMT, &statement_type, 0, OCI_ATTR_STMT_TYPE, myOciError ); > // Set prefetch count > OCIAttrSet( myOciStatement, OCI_HTYPE_STMT, &prefetch, 0, OCI_ATTR_PREFETCH_ROWS, myOciError ); > // Execute query > status = OCIStmtExecute( myOciServerCtx, myOciStatement, myOciError, iters, 0, NULL, NULL, OCI_DEFAULT ); > > > For Postgres > > Can you please tell us how set this prefetch attribute in following lines. Is PQexec returns all the rows from the table? > > mySqlResultsPG = PQexec(connection, aSqlStatement); > if((PQresultStatus(mySqlResultsPG) == PGRES_FATAL_ERROR ) || (PQstatus(connection) != CONNECTION_OK)){} > if ((PQresultStatus(mySqlResultsPG) == PGRES_COMMAND_OK) || (PQresultStatus(mySqlResultsPG) == PGRES_TUPLES_OK)) > { > myNumColumns = PQnfields(mySqlResultsPG); > myTotalNumberOfRowsInQueryResult = PQntuples(mySqlResultsPG); > myCurrentRowNum = 0 ; > } > > > Regards > Tarkeshwar > declare a cursor and fetch https://books.google.com/books?id=Nc5ZT2X5mOcC&pg=PA405&lpg=PA405&dq=pqexec+fetch&source=bl&ots=8P8w5JemcL&sig=ACfU3U0POGGSP0tYTrs5oxykJdOeffaspA&hl=en&sa=X&ved=2ahUKEwjevbmA2KPlAhXukOAKHaBIBcoQ6AEwCnoECDEQAQ#v=onepage&q=pqexec%20fetch&f=false