ngx_Postgres + Eval (agentzh version)

Hello,

I have this piece of configuration that is almost copy+pasted from the
ngx_postgres example but that for some unknown reason to me is not
working.
The value of the $s variable is always empty ou NULL if I use
postgres_escape.

location ~ ‘^/foo/([a-zA-Z0-9-.]+)/(.*)$’ {
set $sid $1;
set $url $2 ;

        eval_subrequest_in_memory off;
        eval_override_content_type text/plain;
        eval_buffer_size 1k;

        eval $isValid {
                postgres_escape   $s $sid;
                postgres_query    "SELECT session_id FROM

server_sessions WHERE session_id = $s LIMIT 1";

                postgres_pass     pg_database;
                postgres_output  value ;
       }

#echo -n "foo:-> sid = "; echo $sid;
#echo -n "foo: → url = "; echo $url;
#echo -n “isValid = [”; echo $isValid; echo “]”;

}

With this comand

curl http://istreamer/foo/s9/4554354aseee4/opopo

(and without the # obviously) I get

foo:-> sid = s9
foo: → url = 4554354aseee4/opopo
isValid = []

and the query get’s logged as

SELECT session_id FROM server_sessions WHERE session_id = NULL LIMIT 1

in the Postgres log meaning that $s has no value.

Can someone explain me what I’m doing wrong? This is supposed to be
quite simple…

AM

Posted at Nginx Forum: