Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Data Bases > Pgsql General > strpos NOT doi...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 3 Topic 15767 of 17437
Post > Topic >>

strpos NOT doing what I'd expect

by smithrn@[EMAIL PROTECTED] (Ralph Smith) Jun 6, 2008 at 05:58 PM

--Apple-Mail-164-417391145
Content-Type: text/plain;
	charset=US-ASCII;
	format=flowed;
	delsp=yes
Content-Transfer-Encoding: 7bit

CODE:
===============================
CREATE OR REPLACE FUNCTION find_next_delim(invar varchar, delimlist  
varchar) RETURNS integer AS
$$

/*   OVERLOADED Function.  The other version takes a 3rd parameter as  
the
                 starting position in invar.
*/

DECLARE

   achar  character := '' ;
   j      int       := 0  ;

BEGIN

   IF length(delimlist) = 0 THEN
     RAISE NOTICE 'In function \'find_next_delim\' the delimiter  
cannot be null.' ;
   END IF ;


   FOR i IN 1 .. length(invar)
   LOOP

     j := j + 1 ;
     achar := substring(invar from i for 1 ) ;
     RAISE NOTICE 'achar is R%S',achar ;
     IF strpos(delimlist,achar) <> 0 THEN
       RETURN j ;
     END IF ;

   END LOOP ;

   RETURN 0 ;

END ;
$$ LANGUAGE plpgsql ;  /*   find_next_delim   */




WHAT'S HAPPENING:
===============================
airburst=# select find_next_delim('ralph smith','3') ;

NOTICE:  achar is RrS
NOTICE:  achar is RaS
NOTICE:  achar is RlS
NOTICE:  achar is RpS
NOTICE:  achar is RhS
NOTICE:  achar is R S
  find_next_delim
-----------------
                6
(1 row)


airburst=# select find_next_delim('ralph smith','') ;  -- for the heck  
of it, that's a null

NOTICE:  In function 'find_next_delim' the delimiter cannot be null.
NOTICE:  achar is RrS
NOTICE:  achar is RaS
NOTICE:  achar is RlS
NOTICE:  achar is RpS
NOTICE:  achar is RhS
NOTICE:  achar is R S
  find_next_delim
-----------------
                6
(1 row)

WHY find a match on the space???

Thanks!


--Apple-Mail-164-417391145
Content-Type: text/html;
	charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; =
">CODE:<div>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: 12px;">CREATE OR REPLACE =
FUNCTION find_next_delim(invar varchar, delimlist varchar) RETURNS =
integer AS</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">$$</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: =
12px;"><br></span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">/* &nbsp; OVERLOADED Function. &nbsp;The =
other version takes a 3rd parameter as the</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: 12px;">&nbsp;&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;starting position in =
invar.</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">*/</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: =
12px;"><br></span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">DECLARE</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">&nbsp;&nbsp;</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: 12px;">&nbsp;&nbsp;achar =
&nbsp;character :=3D '' ;</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: 12px;">&nbsp;&nbsp;j =
&nbsp; &nbsp; &nbsp;int &nbsp; &nbsp; &nbsp; :=3D 0 =
&nbsp;;</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp;</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">BEGIN</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;"><br></span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: 12px;">&nbsp;&nbsp;IF =
length(delimlist) =3D 0 THEN</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: 12px;">&nbsp;&nbsp; =
&nbsp;RAISE NOTICE 'In function \'find_next_delim\' the delimiter cannot =
be null.' ;</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp;END IF =
;</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;"><br></span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">&nbsp;&nbsp;</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: 12px;">&nbsp;&nbsp;FOR i =
IN 1 .. length(invar)&nbsp;</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">&nbsp;&nbsp;LOOP</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: =
12px;"><br></span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp; &nbsp;j :=3D j + 1 =
;</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp; &nbsp;achar :=3D substring(invar =
from i for 1 ) ;</span></font></div><div><font class=3D"Apple-style-span"
=
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp; &nbsp;RAISE NOTICE 'achar is =
R%S',achar ;</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp; &nbsp;IF strpos(delimlist,achar) =
&lt;> 0 THEN</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp; &nbsp; &nbsp;RETURN j =
;</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp; &nbsp;END IF =
;</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp; =
&nbsp;</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp;END LOOP =
;</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp;</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: 12px;">&nbsp;&nbsp;RETURN =
0 ;</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">&nbsp;&nbsp;</span></font></div><div><font =
class=3D"Apple-style-span" face=3D"Courier" size=3D"3"><span =
class=3D"Apple-style-span" style=3D"font-size: 12px;">END =
;</span></font></div><div><font class=3D"Apple-style-span" =
face=3D"Courier" size=3D"3"><span class=3D"Apple-style-span" =
style=3D"font-size: 12px;">$$ LANGUAGE plpgsql ; &nbsp;/* &nbsp; =
find_next_delim &nbsp; =
*/</span></font></div></div><div><br></div><div><br></div><div><br></div><=
div><br></div><div>WHAT'S =
HAPPENING:</div><div>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div>airburst=3D# select =
find_next_delim('ralph smith','3') =
;</div><div><div><br></div><div>NOTICE: &nbsp;achar is =
RrS</div><div>NOTICE: &nbsp;achar is RaS</div><div>NOTICE: &nbsp;achar =
is RlS</div><div>NOTICE: &nbsp;achar is RpS</div><div>NOTICE: =
&nbsp;achar is RhS</div><div>NOTICE: &nbsp;achar is R =
S</div><div>&nbsp;find_next_delim&nbsp;</div><div>-----------------</div><=
div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
6</div><div>(1 =
row)</div><div><br></div><div><br></div><div><div>airburst=3D# select =
find_next_delim('ralph smith','') ; &nbsp;-- for the heck of it, that's =
a null</div><div><br></div><div>NOTICE: &nbsp;In function =
'find_next_delim' the delimiter cannot be null.</div><div>NOTICE: =
&nbsp;achar is RrS</div><div>NOTICE: &nbsp;achar is =
RaS</div><div>NOTICE: &nbsp;achar is RlS</div><div>NOTICE: &nbsp;achar =
is RpS</div><div>NOTICE: &nbsp;achar is RhS</div><div>NOTICE: =
&nbsp;achar is R =
S</div><div>&nbsp;find_next_delim&nbsp;</div><div>-----------------</div><=
div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
6</div><div>(1 row)</div><div><br></div><div>WHY find a match on the =
space???</div><div><br></div><div>Thanks!</div><div><br></div></div></div>=
</body></html>=

--Apple-Mail-164-417391145--
 




 3 Posts in Topic:
strpos NOT doing what I'd expect
smithrn@[EMAIL PROTECTED]  2008-06-06 17:58:28 
Re: strpos NOT doing what I'd expect
tgl@[EMAIL PROTECTED] (T  2008-06-06 22:06:27 
Re: strpos NOT doing what I'd expect
dalroi@[EMAIL PROTECTED]   2008-06-07 12:12:43 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sat Nov 22 11:47:17 CST 2008.