There are the patch:
/***************************************************************/
Index: func.c
===================================================================
--- func.c (revision 264)
+++ func.c (working copy)
@@ -117,6 +117,65 @@
}
/*
+** Implementation of the strpos() function
+*/
+static void strposFunc(
+ sqlite3_context *context,
+ int argc,
+ sqlite3_value **argv
+){
+ const char *z;
+ const char *z1;
+ const char *z2;
+ int len;
+ int len1;
+ int pos;
+ int pass;
+
+ assert( argc==2 || argc==3 );
+ if( sqlite3_value_type(argv[1]) == SQLITE_NULL
+ || (argc==3 && sqlite3_value_type(argv[2]) != SQLITE_INTEGER)
+ ){
+ return;
+ }
+
+ z = (char*)sqlite3_value_text(argv[0]);
+ if (z == NULL) return;
+
+ z1 = (char*)sqlite3_value_text(argv[1]);
+ if (z1 == NULL) return;
+
+ if (argc>=3) {
+ pos = sqlite3_value_int64(argv[2]);
+ if (pos == 0) return;
+ } else pos = 1;
+
+ if (pos < 0) {
+ pass = -1;
+ z2 = z + strlen(z) - 1;
+ } else {
+ pass = 1;
+ z2 = z;
+ }
+
+ len = strlen(z);
+ len1 = strlen(z1);
+ do {
+ if (strncmp(z2, z1, len1) == 0) {
+ pos -= pass;
+ if (pos == 0) break;
+ }
+ z2 += pass;
+ } while ((z2 >= z) && (z2 < (z + len)));
+
+ if (pos == 0) {
+ sqlite3_result_int64(context, (int)(z2 - z) + 1);
+ } else {
+ sqlite3_result_int64(context, 0);
+ }
+}
+
+/*
** Implementation of the abs() function.
**
** IMP: R-23979-26855 The abs(X) function returns the absolute value of
@@ -1527,6 +1586,8 @@
AGGREGATE(max, 1, 1, 1, minmaxStep, minMaxFinalize ),
FUNCTION(typeof, 1, 0, 0, typeofFunc ),
FUNCTION(length, 1, 0, 0, lengthFunc ),
+ FUNCTION(strpos, 2, 0, 0, strposFunc ),
+ FUNCTION(strpos, 3, 0, 0, strposFunc ),
FUNCTION(substr, 2, 0, 0, substrFunc ),
FUNCTION(substr, 3, 0, 0, substrFunc ),
FUNCTION(abs, 1, 0, 0, absFunc ),
/***************************************************************/
----- Mensagem original -----
De: "Israel Lins Albuquerque" <[email protected]>
Para: "General Discussion of SQLite Database" <[email protected]>
Enviadas: Quarta-feira, 17 de Março de 2010 12:08:56
Assunto: Re: [sqlite] Why we don't have strpos function?
I forgot attach...
This are based in the current release 3.6.23.
--
Atenciosamente,
Israel Lins Albuquerque
Desenvolvimento
Polibrás Brasil Software Ltda.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
--
Atenciosamente,
Israel Lins Albuquerque
Desenvolvimento
Polibrás Brasil Software Ltda.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users