From: | "Inoue, Hiroshi" <inoue(at)tpf(dot)co(dot)jp> |
---|---|
To: | Mike Landl <mlandl(at)4glsol(dot)com>, pgsql-odbc(at)postgresql(dot)org |
Subject: | Re: Is this typical psqlodbc behavior? |
Date: | 2013-12-10 00:05:46 |
Message-ID: | 52A65ADA.7090008@tpf.co.jp |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
(2013/12/10 0:07), Mike Landl wrote:
> Hi there,
>
> I am trying to figure out if the behavior below is something that
> psqlodbc is doing automatically of if there is something else at play.
>
> The programming language I am using to access PostgreSQL is a high level
> 4^th generation language called ProIV and I believe it is doing strange
> and/or unnecessary things behind the scenes. When I run a simple query
> (SELECT CUSTOMER_BILL_TO,CUSMS_BILL_NAME FROM CUS_MST WHERE
> CUSTOMER_BILL_TO='00000675';) against PostgreSQL the following shows up
> in the PostgreSQL log file:
>
> LOG: statement: SAVEPOINT _EXEC_SVP_0x1b42080
>
> LOG: duration: 0.017 ms
>
> LOG: statement: select n.nspname, c.relname, a.attname, a.atttypid,
> t.typname, a.attnum, a.attlen, a.atttypmod, a.attnotnull, c.relhasrules,
> c.relkind, c.oid, pg_get_expr(d.adbin, d.adrelid), case t.typtype when
> 'd' then t.typbasetype else 0 end, t.typtypmod, c.relhasoids from
> (((pg_catalog.pg_class c inner join pg_catalog.pg_namespace n on n.oid =
> c.relnamespace and c.oid = 481563) inner join pg_catalog.pg_attribute a
> on (not a.attisdropped) and a.attnum > 0 and a.attrelid = c.oid) inner
> join pg_catalog.pg_type t on t.oid = a.atttypid) left outer join
> pg_attrdef d on a.atthasdef and d.adrelid = a.attrelid and d.adnum =
> a.attnum order by n.nspname, c.relname, attnum
>
> LOG: duration: 2.487 ms
>
> LOG: statement: RELEASE _EXEC_SVP_0x1b42080
>
> LOG: duration: 0.034 ms
>
> LOG: statement: PREPARE "_KEYSET_0x1af2180"(tid,tid) as SELECT
> CUSTOMER_BILL_TO,CUSMS_BILL_NAME , "ctid" FROM CUS_MST where ctid in
> ($1,$2)
>
> LOG: duration: 0.089 ms
>
> LOG: statement: SAVEPOINT _per_query_svp_;DEALLOCATE
> "_KEYSET_0x1af2180";RELEASE _per_query_svp_
>
> LOG: duration: 0.027 ms
>
> LOG: statement: SAVEPOINT _per_query_svp_;select relhasoids, c.oid from
> pg_class c, pg_namespace n where relname = 'cus_mst' and nspname =
> 'public' and c.relnamespace = n.oid;RELEASE _per_query_svp_
>
> LOG: duration: 0.180 ms
>
> LOG: statement: SAVEPOINT _per_query_svp_;select a.attname, a.atttypid
> from pg_index i, pg_attribute a where indrelid=481563 and indnatts=1 and
> indisunique and indexprs is null and indpred is null and i.indrelid =
> a.attrelid and a.attnum=i.indkey[0] and attnotnull and atttypid in (23,
> 26);RELEASE _per_query_svp_
>
> LOG: duration: 0.246 ms
>
> LOG: statement: SELECT CUSTOMER_BILL_TO,CUSMS_BILL_NAME , "ctid" FROM
> CUS_MST WHERE CUSTOMER_BILL_TO='00000675'
>
> LOG: duration: 0.100 ms
>
> LOG: statement: SAVEPOINT _EXEC_SVP_0x1af2180
>
> LOG: duration: 0.018 ms
>
> LOG: statement: select n.nspname, c.relname, a.attname, a.atttypid,
> t.typname, a.attnum, a.attlen, a.atttypmod, a.attnotnull, c.relhasrules,
> c.relkind, c.oid, pg_get_expr(d.adbin, d.adrelid), case t.typtype when
> 'd' then t.typbasetype else 0 end, t.typtypmod, c.relhasoids from
> (((pg_catalog.pg_class c inner join pg_catalog.pg_namespace n on n.oid =
> c.relnamespace and c.oid = 481563) inner join pg_catalog.pg_attribute a
> on (not a.attisdropped) and a.attnum > 0 and a.attrelid = c.oid) inner
> join pg_catalog.pg_type t on t.oid = a.atttypid) left outer join
> pg_attrdef d on a.atthasdef and d.adrelid = a.attrelid and d.adnum =
> a.attnum order by n.nspname, c.relname, attnum
>
> LOG: duration: 2.412 ms
>
> LOG: statement: RELEASE _EXEC_SVP_0x1af2180
>
> LOG: duration: 0.020 ms
>
> What I am wondering are 2 things:
>
> 1.Are the savepoints something that the odbc driver is automatically
> creating or could it be the programming language be adding additional
> things to my query?
Psqlodbc driver does it.
You can avoid the behavior using the driver option setting or connection
string.
> 2.Is the odbc driver automatically reading pg_class, pg_catalog, etc. or
> again, could it be the programming language adding additional queries
> behind the scenes?
Psqlodbc driver does it.
regards,
Hiroshi Inoue
--
I am using the free version of SPAMfighter.
SPAMfighter has removed 1065 of my spam emails to date.
Get the free SPAMfighter here: http://www.spamfighter.com/len
Do you have a slow PC? Try a Free scan
http://www.spamfighter.com/SLOW-PCfighter?cid=sigen
From | Date | Subject | |
---|---|---|---|
Next Message | Inoue, Hiroshi | 2013-12-10 00:31:30 | Re: use inet_pton() instead of inet_addr() for ipv4/6 |
Previous Message | Pliszka, Jacek | 2013-12-09 22:11:33 | Re: Adding memory query cache to ODBC driver |