Calling sqlite_create_function() overrides builtin functions.
On Tue, 2004-01-27 at 07:36, Drew, Stephen wrote: > So how does SQLite distinguish between the built-in: > > { "like", 2, SQLITE_NUMERIC, likeFunc }, > > and a user-defined function such as > > { "like", 2, SQLITE_NUMERIC, my_like_function }, > > then? > > -----Original Message----- > From: Mrs. Brisby [mailto:[EMAIL PROTECTED] > Sent: Tuesday, January 27, 2004 12:27 PM > To: [EMAIL PROTECTED] > Cc: D. Richard Hipp; [EMAIL PROTECTED] > Subject: Re: [sqlite] escaping " and % in sql statements > > > On Mon, 2004-01-26 at 09:08, [EMAIL PROTECTED] wrote: > > "D. Richard Hipp" <[EMAIL PROTECTED]> writes: > > > > > As an interim workaround, you could defined your own > > > "like()" function using the sqlite_create_function() API > > > that implemented built-in escapes. Any user-defined > > > function named "like()" is used to implement the LIKE > > > keyword of SQL. > > > > That seems pretty dangerous, since no one would expect that function name > to > > exist as a public symbol in a library. I would suggest changing the name > of > > the internal like() function to sqlite_like() or some equivalent, to avoid > > potential problems. Being able to overload internal functions could be a > nice > > feature (which should be documented) but it seems the names should be > clearly > > associated with sqlite. > > I do not think you understand. > > SQLite has no "deep magic" allowing it to figure out what you call your > own symbols: The built-in like() function is a static symbol in func.c > called "likeFunc", and your code has nothing at all to do with this. > > You make a call like this: > > sqlite_create_function(p, "like", 2, my_like_func, 0); > > after defining your own function; in this example it's called > "my_like_function" - but you can certainly call it whatever you like, > including sqlite_like, if you're so inclined. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]