Re: BUG #13979: Strange pg_stat_statements results with PREPARE/EXECUTE

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: "kasahara(dot)tatsuhito(at)gmail(dot)com" <kasahara(dot)tatsuhito(at)gmail(dot)com>
Cc: "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #13979: Strange pg_stat_statements results with PREPARE/EXECUTE
Date: 2016-02-23 14:36:41
Message-ID: CAKFQuwYQT_03wR346sG5wbdrrap9jX8jWZ-Hh+vStZi4NB++9Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Tuesday, February 23, 2016, <kasahara(dot)tatsuhito(at)gmail(dot)com> wrote:

> The following bug has been logged on the website:
>
> Bug reference: 13979
> Logged by: Kasahara Tatsuhito
> Email address: kasahara(dot)tatsuhito(at)gmail(dot)com <javascript:;>
> PostgreSQL version: 9.5.1
> Operating system: RHEL
> Description:
>
> Hi, I noticed that in some cases pg_stat_statements shows strange results.
> (example)
>
> =# CREATE TABLE tt(c1 int);
> =# INSERT INTO tt SELECT generate_series(1,10);
> =# SELECT pg_stat_statements_reset();
>
> Then, performed simple SELECTs via java. (see the end of this mail)
> After that, I got the following pg_stat_statements result, and ISTM it's
> reasonable.
>
> =# SELECT queryid, calls, query FROM pg_stat_statements WHERE query LIKE
> '%tt%';
> queryid | calls | query
> -----------+-------+--------------------------------
> 575935600 | 10 | SELECT * FROM tt WHERE c1 = $1
>
>
> Next, reset the pg_stat_statements and performed PREPARE and EXECUTE via
> psql.
>
> =# SELECT pg_stat_statements_reset();
> =# PREPARE p1(int) AS SELECT * FROM tt WHERE c1 = $1;
> =# EXECUTE p1(1);
> =# SELECT queryid, calls, query FROM pg_stat_statements WHERE query LIKE
> '%tt%';
> queryid | calls | query
> -----------+-------+----------------------------------------------------
> 575935600 | 1 | PREPARE p1(int) AS SELECT * FROM tt WHERE c1 = $1;
> (1 row)
>
> Then, performed same SELECTs via java.
> After that, I got a bit strange pg_stat_statements result..
>
> =# SELECT queryid, calls, query FROM pg_stat_statements WHERE query LIKE
> '%tt%';
> queryid | calls | query
> -----------+-------+----------------------------------------------------
> 575935600 | 11 | PREPARE p1(int) AS SELECT * FROM tt WHERE c1 = $1;
> (1 row)
>
>
> I'm not sure it's expected behaviors, but seems a bug.
>
> Best regards,
>
> // Java Test code
> import java.lang.*;
> import java.sql.*;
>
> class Test {
> public static void main(String[] args) {
> String driver = "org.postgresql.Driver";
> String url =
>
> "jdbc:postgresql://localhost/postgres?user=postgres&ApplicationName=my_jdbc_test";
> try{
> Connection con = DriverManager.getConnection(url);
> con.setAutoCommit(false);
> String sql1 = "SELECT * FROM tt WHERE c1 = ?";
> PreparedStatement ps1 = con.prepareStatement(sql1);
>
> for (int i=1; i<=10; i++) {
> ps1.setInt(1,i);
> ResultSet rs = ps1.executeQuery();
> while(rs.next()){
> System.out.println("results c1:" + rs.getInt(1));
> }
> }
>
> con.commit();
> ps1.close();
> con.close();
> }catch (Exception e){
> e.printStackTrace();
> }
> }
> }
>
>
You need to tell people what exactly you think is strange/what you would
expect to see.

David J.

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message ranier_gyn 2016-02-23 15:03:24 BUG #13982: HANDLE LEAK
Previous Message ranier_gyn 2016-02-23 14:33:37 BUG #13981: Possible HANDLE LEAK