1# vi:filetype= 2 3use lib 'lib'; 4use Test::Nginx::Socket; 5 6repeat_each(2); 7 8plan tests => repeat_each() * 2 * blocks(); 9 10$ENV{TEST_NGINX_POSTGRESQL_PORT} ||= 5432; 11 12no_long_string(); 13 14no_diff(); 15 16run_tests(); 17 18__DATA__ 19 20=== TEST 1: bool blob field (keepalive off) 21--- http_config 22 upstream backend { 23 postgres_server 127.0.0.1:$TEST_NGINX_POSTGRESQL_PORT 24 dbname=ngx_test user=ngx_test password=ngx_test; 25 postgres_keepalive off; 26 } 27--- config 28 location /test { 29 echo_location /pgignore "drop table if exists foo"; 30 echo_location /pg "create table foo (id serial, flag bool);"; 31 echo_location /pg "insert into foo (flag) values (true);"; 32 echo_location /pg "insert into foo (flag) values (false);"; 33 echo_location /pg "select * from foo order by id;"; 34 } 35 location /pg { 36 postgres_pass backend; 37 postgres_query $query_string; 38 rds_csv on; 39 } 40 location = /pgignore { 41 postgres_pass backend; 42 postgres_query $query_string; 43 rds_csv on; 44 error_page 500 = /ignore; 45 } 46 location /ignore { echo "ignore"; } 47--- request 48GET /test 49--- response_body eval 50qq{errcode,errstr,insert_id,affected_rows\r 510,,0,0\r 52errcode,errstr,insert_id,affected_rows\r 530,,0,0\r 54errcode,errstr,insert_id,affected_rows\r 550,,0,1\r 56errcode,errstr,insert_id,affected_rows\r 570,,0,1\r 58id,flag\r 591,t\r 602,f\r 61} 62--- skip_nginx: 2: < 0.7.46 63 64 65 66=== TEST 2: bool blob field (keepalive on) 67--- http_config 68 upstream backend { 69 postgres_server 127.0.0.1:$TEST_NGINX_POSTGRESQL_PORT 70 dbname=ngx_test user=ngx_test password=ngx_test; 71 } 72--- config 73 location /test { 74 echo_location /pg "drop table if exists foo"; 75 echo_location /pg "create table foo (id serial, flag bool);"; 76 echo_location /pg "insert into foo (flag) values (true);"; 77 echo_location /pg "insert into foo (flag) values (false);"; 78 echo_location /pg "select * from foo order by id;"; 79 } 80 location /pg { 81 postgres_pass backend; 82 postgres_query $query_string; 83 rds_csv on; 84 } 85 location = /pgignore { 86 postgres_pass backend; 87 postgres_query $query_string; 88 rds_csv on; 89 error_page 500 = /ignore; 90 } 91 location /ignore { echo "ignore"; } 92--- request 93GET /test 94--- response_body eval 95qq{errcode,errstr,insert_id,affected_rows\r 960,,0,0\r 97errcode,errstr,insert_id,affected_rows\r 980,,0,0\r 99errcode,errstr,insert_id,affected_rows\r 1000,,0,1\r 101errcode,errstr,insert_id,affected_rows\r 1020,,0,1\r 103id,flag\r 1041,t\r 1052,f\r 106} 107--- skip_nginx: 2: < 0.7.46 108 109