This behavior is similar to strstr(3) ('needle in a haystack' substring locating C function). char *strstr(const char *haystack, const char *needle) which returns haystack (that is main string) if needle (string to be located) is empty. Assuming position() tries to do something similar, it returns first index (which is 1) of the main string (haystack!). Although this does not answer if it's a bug or not, I tend to think it is deliberate. On Thu, May 2, 2013 at 9:09 PM, dinesh kumar <dineshkumar02@xxxxxxxxx> wrote: > Hello Team, > > I would like to know whether the following behavior is a BUG or an expected > behavior. If this is a duplicated case, then kindly ignore. > > postgres=# SELECT version(); > version > ------------------------------------------------------------- > PostgreSQL 9.2.3, compiled by Visual C++ build 1600, 32-bit > (1 row) > > > postgres=# select position('P' in 'PostgreSQL'); > position > ---------- > 1 > (1 row) > > > postgres=# select position('' in 'PostgreSQL'); // position(Substring as an > empty string) is returning 1. > position > ---------- > 1 > (1 row) > > Kindly let me know, if anything i miss here. > > Regards, > Dinesh > manojadinesh.blogspot.com -- Amit Langote -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general