Sankara Narayanan wrote:

Dear Hipp and all,

We request you to provide guidelines for the implementation of where.c without using any of the DOUBLE values. We need to find the bestIndex calculation with all integer variables and integer values. We converted all doubles to integers by typecasting (we use #define as double overriding the DOUBLE definition in our C Libraries) and thus we could compile the library for our ARM 7 platform. We first open a database using sqlite3_open and this function succeeds. When we try to run the CREATE TABLE Command, we find that sqlite3WhereBegin is called, and we find that the command execution returns with error 0x1A (File Not a database error). We have modified only the values in where.c with the integer values as mentioned in my earlier mail but we think that this could cause problems as we might be messing up the bestIndex finding algorithm with these changes. I request you to please review the code that is sent earlier and provide comments/guidelines on how we could implement the bestIndex algorithm using integer values (to the closest possible working algorithm). Please note that in our schematics, we are also creating indices for tables that have VARCHAR fields.
I request you to kindly look into this problem at the earliest.

Thank you,

With Regards,
Sankara Narayanan
Philips Innovation Campus
No 1, Murphy Road,
Ulsoor, Bangalore - 560008.
Ph - 0091-80-25579000 Extn 5121

"Utthistatha Jaagrata Praapya Varaan Nibodhatha"
Well, if you don't care about using indexes other than the primary key, it looks like you could do this:

static double bestIndex(
 Parse *pParse,              /* The parsing context */
 WhereClause *pWC,           /* The WHERE clause */
 struct SrcList_item *pSrc,  /* The FROM clause term to search */
 Bitmask notReady,           /* Mask of cursors that are not available */
 ExprList *pOrderBy,         /* The order by clause */
 Index **ppIndex,            /* Make *ppIndex point to the best index */
 int *pFlags,                /* Put flags describing this choice in *pFlags */
 int *pnEq                   /* Put the number of == or IN constraints here */
){
   ppIndex = pSrc->pTab->pIndex;
}

I'm pretty sure this is a bad idea, but you could do it for now, just to get 
started on testing and things.

John LeSueur


Reply via email to