pgjdbc/pgjdbc GitHub issues and pull requests (mirror)
help / color / mirror / Atom feed[pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
17+ messages / 4 participants
[nested] [flat]
* [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-15 19:50 "goranschwarz (@goranschwarz)" <[email protected]>
0 siblings, 0 replies; 17+ messages in thread
From: goranschwarz (@goranschwarz) @ 2024-03-15 19:50 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
**Describe the issue**
`query_id` in `pg_stat_activity` is NULL when connecting from JDBC, but not from `psql`
**Driver Version?**
42.7.2 (postgresql-42.7.2.jar)
**Java Version?**
21.0.1 (or any)
**OS Version?**
Windows 11 (I guess any here as well)
**PostgreSQL Version?**
16.2 on CentOS 9
**To Reproduce**
* from one session do: select pg_sleep(44)
* from another session: select query_id, * from pg_stat_activity where query like '%pg_sleep%'
**Expected behaviour**
* `query_id` should not be NULL
**Logs**
nothing in the logs
**Why I need this**
In my monitoring tool (https://github.com/goranschwarz/DbxTune)
I get query_plan information from the errorlog using `auto_explain` and then cache that plan in memory.
If a new query comes with the same `query_id` I can now show the query plan in "Active Statements", with `pev2` or som other Query Plan Viewer
Note: It would be **even** better if I could retrive the `query plan`at runtime...
Meaning: `select get_query_plan_for_current_running_pid(###)` , but that isn't around, so have to come up with something...
But now I trapped over that that all JDBC connections just do not show the `query_id`... bummer :(
**Reproducable code**
```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class PgQueryIdRepro
{
public static void main(String[] args) throws Exception
{
String url = "jdbc:postgresql://hostname:5432/postgres";
Properties props = new Properties();
props.setProperty("user" , "dbxtune");
props.setProperty("password", "some-secret-password");
// Kick of a 'pg_sleep'
PgSleep pgSleep = new PgSleep(3, url, props);
pgSleep.start();
try (Connection conn = DriverManager.getConnection(url, props))
{
// Then get records from pg_stat_activity
try (Statement statement = conn.createStatement())
{
try (ResultSet rs = statement.executeQuery("select query_id, * from pg_stat_activity where query like '%pg_sleep%'"))
{
int colCount = rs.getMetaData().getColumnCount();
int row = 0;
while( rs.next() )
{
row++;
int queryId = rs.getInt(1);
boolean queryIdIsNull = rs.wasNull();
if (queryIdIsNull)
{
System.out.println(">>>> ERROR: row[" + row + "], column 'query_id', shouldn't be NULL, it has a value if the statement was initiated from 'psql'...");
}
for (int c = 1; c <= colCount; c++)
{
System.out.println("PG-STAT-ACTIVITY: row[" + row + "], col[" + c + "] = |" + rs.getString(c) + "|");
}
}
}
}
}
}
private static class PgSleep
extends Thread
{
private int _sleepTime;
private String _url;
private Properties _props;
public PgSleep(int sleepTime, String url, Properties props)
{
_sleepTime = sleepTime;
_url = url;
_props = props;
}
@Override
public void run()
{
System.out.println("Starting PgSleep...");
try
{
try (Connection conn = DriverManager.getConnection(_url, _props))
{
try (Statement statement = conn.createStatement())
{
try (ResultSet rs = statement.executeQuery("select pg_sleep(" + _sleepTime + ")"))
{
int colCount = rs.getMetaData().getColumnCount();
int row = 0;
while( rs.next() )
{
row++;
for (int c = 1; c <= colCount; c++)
{
System.out.println("PG-SLEEP-RS: row[" + row + "], col[" + c + "] = |" + rs.getString(c) + "|");
}
}
}
}
}
}
catch (SQLException ex)
{
ex.printStackTrace();
}
}
}
```
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-18 20:42 ` "davecramer (@davecramer)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: davecramer (@davecramer) @ 2024-03-18 20:42 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
I just tested your code and
`PG-STAT-ACTIVITY: row[3], col[1] = |-3416356442043621232|`
seems to work fine.
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-18 21:35 ` "goranschwarz (@goranschwarz)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: goranschwarz (@goranschwarz) @ 2024-03-18 21:35 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
I see that you get the "correct" row at row 3 (is that a JDBC Connection or "something else")
What does the previous rows say?
Below is my full output (only 2 rows)
```
Starting PgSleep...
>>>> ERROR: row[1], column 'query_id', shouldn't be NULL, it has a value if the statement was initiated from 'psql'...
PG-STAT-ACTIVITY: row[1], col[1] = |null|
PG-STAT-ACTIVITY: row[1], col[2] = |5|
PG-STAT-ACTIVITY: row[1], col[3] = |postgres|
PG-STAT-ACTIVITY: row[1], col[4] = |1442795|
PG-STAT-ACTIVITY: row[1], col[5] = |null|
PG-STAT-ACTIVITY: row[1], col[6] = |16384|
PG-STAT-ACTIVITY: row[1], col[7] = |dbxtune|
PG-STAT-ACTIVITY: row[1], col[8] = |PostgreSQL JDBC Driver|
PG-STAT-ACTIVITY: row[1], col[9] = |192.168.0.161|
PG-STAT-ACTIVITY: row[1], col[10] = |null|
PG-STAT-ACTIVITY: row[1], col[11] = |54781|
PG-STAT-ACTIVITY: row[1], col[12] = |2024-03-18 22:27:06.602158+01|
PG-STAT-ACTIVITY: row[1], col[13] = |2024-03-18 22:27:07.742059+01|
PG-STAT-ACTIVITY: row[1], col[14] = |2024-03-18 22:27:07.742851+01|
PG-STAT-ACTIVITY: row[1], col[15] = |2024-03-18 22:27:07.742852+01|
PG-STAT-ACTIVITY: row[1], col[16] = |Timeout|
PG-STAT-ACTIVITY: row[1], col[17] = |PgSleep|
PG-STAT-ACTIVITY: row[1], col[18] = |active|
PG-STAT-ACTIVITY: row[1], col[19] = |null|
PG-STAT-ACTIVITY: row[1], col[20] = |2235|
PG-STAT-ACTIVITY: row[1], col[21] = |null|
PG-STAT-ACTIVITY: row[1], col[22] = |select pg_sleep(3)|
PG-STAT-ACTIVITY: row[1], col[23] = |client backend|
>>>> ERROR: row[2], column 'query_id', shouldn't be NULL, it has a value if the statement was initiated from 'psql'...
PG-STAT-ACTIVITY: row[2], col[1] = |null|
PG-STAT-ACTIVITY: row[2], col[2] = |5|
PG-STAT-ACTIVITY: row[2], col[3] = |postgres|
PG-STAT-ACTIVITY: row[2], col[4] = |1442794|
PG-STAT-ACTIVITY: row[2], col[5] = |null|
PG-STAT-ACTIVITY: row[2], col[6] = |16384|
PG-STAT-ACTIVITY: row[2], col[7] = |dbxtune|
PG-STAT-ACTIVITY: row[2], col[8] = |PostgreSQL JDBC Driver|
PG-STAT-ACTIVITY: row[2], col[9] = |192.168.0.161|
PG-STAT-ACTIVITY: row[2], col[10] = |null|
PG-STAT-ACTIVITY: row[2], col[11] = |54782|
PG-STAT-ACTIVITY: row[2], col[12] = |2024-03-18 22:27:06.604805+01|
PG-STAT-ACTIVITY: row[2], col[13] = |2024-03-18 22:27:07.739081+01|
PG-STAT-ACTIVITY: row[2], col[14] = |2024-03-18 22:27:07.745152+01|
PG-STAT-ACTIVITY: row[2], col[15] = |2024-03-18 22:27:07.745153+01|
PG-STAT-ACTIVITY: row[2], col[16] = |null|
PG-STAT-ACTIVITY: row[2], col[17] = |null|
PG-STAT-ACTIVITY: row[2], col[18] = |active|
PG-STAT-ACTIVITY: row[2], col[19] = |null|
PG-STAT-ACTIVITY: row[2], col[20] = |2235|
PG-STAT-ACTIVITY: row[2], col[21] = |null|
PG-STAT-ACTIVITY: row[2], col[22] = |select query_id, * from pg_stat_activity where query like '%pg_sleep%'|
PG-STAT-ACTIVITY: row[2], col[23] = |client backend|
PG-SLEEP-RS: row[1], col[1] = ||
```
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-18 21:44 ` "goranschwarz (@goranschwarz)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: goranschwarz (@goranschwarz) @ 2024-03-18 21:44 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
If it's a config issue... here are my config for version `PostgreSQL 16.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.4.1 20230605 (Red Hat 11.4.1-2), 64-bit`
Note: all config is done via `ALTER SYSTEM SET ...` so nothing in `postgresql.conf` is changed...
```
[postgres@pg-3a-cos9 data]$ more postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
wal_keep_size = '128'
cluster_name = 'pg-3a-cos9'
listen_addresses = '*'
port = '5432'
max_connections = '300'
superuser_reserved_connections = '3'
password_encryption = 'scram-sha-256'
huge_pages = 'try'
shared_buffers = '1317MB'
work_mem = '16MB'
maintenance_work_mem = '131MB'
effective_io_concurrency = '200'
wal_compression = 'on'
wal_log_hints = 'on'
wal_buffers = '64MB'
checkpoint_completion_target = '0.9'
archive_mode = 'on'
archive_command = '/bin/true'
random_page_cost = '1.1'
effective_cache_size = '4096MB'
cpu_tuple_cost = '0.03'
logging_collector = 'on'
log_destination = 'stderr,csvlog'
log_checkpoints = 'on'
log_min_duration_statement = '3000'
log_line_prefix = '%m [%p]: u=[%u] db=[%d] app=[%a] c=[%h] s=[%c:%l] tx=[%v:%x] '
log_lock_waits = 'on'
log_statement = 'ddl'
log_temp_files = '0'
log_connections = 'on'
log_disconnections = 'on'
log_autovacuum_min_duration = '0'
autovacuum_max_workers = '5'
autovacuum_vacuum_cost_limit = '5000'
idle_in_transaction_session_timeout = '180min'
lc_messages = 'C'
track_functions = 'pl'
track_io_timing = 'on'
track_wal_io_timing = 'on'
track_activity_query_size = '4096'
max_prepared_transactions = '300'
compute_query_id = 'on'
pg_stat_statements.max = '10000'
pg_stat_statements.track = 'all'
pg_stat_statements.track_utility = 'on'
pg_stat_statements.track_planning = 'off'
pg_stat_statements.save = 'on'
pg_wait_sampling.history_size = '5000'
pg_wait_sampling.history_period = '10'
pg_wait_sampling.profile_period = '10'
pg_wait_sampling.profile_pid = 'true'
pg_wait_sampling.profile_queries = 'true'
auto_explain.log_analyze = 'on'
auto_explain.log_buffers = 'on'
auto_explain.log_format = 'json'
auto_explain.log_level = 'log'
auto_explain.log_min_duration = '3000'
auto_explain.log_nested_statements = 'on'
auto_explain.log_parameter_max_length = '-1'
auto_explain.log_settings = 'on'
auto_explain.log_timing = 'on'
auto_explain.log_triggers = 'on'
auto_explain.log_verbose = 'on'
auto_explain.log_wal = 'on'
auto_explain.sample_rate = '1'
shared_preload_libraries = 'pg_stat_statements, auto_explain, pg_wait_sampling'
wal_level = 'replica'
[postgres@pg-3a-cos9 data]$
```
I could **not** attach my shell script here (shell scripts wasn't supported) that installs a new Postgres 16.x instance on a "clean" CentOS-9 or RHEL 9 VM
But if I can send it to you in some other way, you may have a reproducible case!
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-19 19:54 ` "davecramer (@davecramer)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: davecramer (@davecramer) @ 2024-03-19 19:54 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
There should be no reason that query_id can't be read by JDBC. It does nothing different.
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-19 21:07 ` "goranschwarz (@goranschwarz)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: goranschwarz (@goranschwarz) @ 2024-03-19 21:07 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
I totally agree with you!
There should be **no** difference if I execute `select query_id, pid, query, version() from pg_stat_activity where pid = pg_backend_pid()` from `psql` or from a `JDBC` Connection!
And yet I see a difference!
Executing the above SQL from `psql` yields this result (query_id has a value)
```
[postgres@pg-3a-cos9 ~]$ psql --expanded --command="select query_id, pid, query, version() from pg_stat_activity where pid = pg_backend_pid()"
-[ RECORD 1 ]------------------------------------------------------------------------------------------------------
query_id | 6627523495344870092
pid | 1662866
query | select query_id, pid, query, version() from pg_stat_activity where pid = pg_backend_pid()
version | PostgreSQL 16.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.4.1 20230605 (Red Hat 11.4.1-2), 64-bit
```
Executing the same SQL from JDBC yields this result (query_id is NULL)
```
>>>> ERROR: row[1], column 'query_id', shouldn't be NULL, it has a value if the statement was initiated from 'psql'...
PG-STAT-ACTIVITY: row[1], col[1] = |null|
PG-STAT-ACTIVITY: row[1], col[2] = |1664602|
PG-STAT-ACTIVITY: row[1], col[3] = |select query_id, pid, query, version() from pg_stat_activity where pid = pg_backend_pid()|
PG-STAT-ACTIVITY: row[1], col[4] = |PostgreSQL 16.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.4.1 20230605 (Red Hat 11.4.1-2), 64-bit|
```
I simplified my Java repro code in the following way, so if you can try that *simplification* on your server and post the output
```
public static void main(String[] args) throws Exception
{
String url = "jdbc:postgresql://pg-3a-cos9:5432/postgres"; // Postgres 16.2
Properties props = new Properties();
props.setProperty("user" , "postgres");
props.setProperty("password", "xxxxxxxxxxxxx");
try (Connection conn = DriverManager.getConnection(url, props))
{
// Then get records from pg_stat_activity
try (Statement statement = conn.createStatement())
{
try (ResultSet rs = statement.executeQuery("select query_id, pid, query, version() from pg_stat_activity where pid = pg_backend_pid()"))
{
int colCount = rs.getMetaData().getColumnCount();
int row = 0;
while( rs.next() )
{
row++;
int queryId = rs.getInt(1);
boolean queryIdIsNull = rs.wasNull();
if (queryIdIsNull)
{
System.out.println(">>>> ERROR: row[" + row + "], column 'query_id', shouldn't be NULL, it has a value if the statement was initiated from 'psql'...");
}
for (int c = 1; c <= colCount; c++)
{
System.out.println("PG-STAT-ACTIVITY: row[" + row + "], col[" + c + "] = |" + rs.getString(c) + "|");
}
}
}
}
}
}
```
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-19 21:51 ` "davecramer (@davecramer)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: davecramer (@davecramer) @ 2024-03-19 21:51 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
will do
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-20 11:46 ` "davecramer (@davecramer)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: davecramer (@davecramer) @ 2024-03-20 11:46 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
Ok, well that is beyond bizarre, will figure this out.
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-20 12:42 ` "davecramer (@davecramer)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: davecramer (@davecramer) @ 2024-03-20 12:42 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
Ok, so here's what is happening. The driver uses Extended Protocol so normally it does
```
2024-03-20 07:50:31.785 EDT [12162] LOG: duration: 2.311 ms parse <unnamed>: select query_id, pid, query, version() from pg_stat_activity where pid = pg_backend_pid()
2024-03-20 07:50:31.787 EDT [12162] LOG: duration: 2.062 ms bind <unnamed>: select query_id, pid, query, version() from pg_stat_activity where pid = pg_backend_pid()
2024-03-20 07:50:31.792 EDT [12162] LOG: duration: 0.552 ms execute <unnamed>: select query_id, pid, query, version() from pg_stat_activity where pid = pg_backend_pid()
```
And apparently query_id is not calculated for that.
Add `PGProperty.PREFER_QUERY_MODE.set(props, "simple");` to your code and it works fine.
Dave
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-20 13:05 ` "vlsi (@vlsi)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: vlsi (@vlsi) @ 2024-03-20 13:05 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
> Add PGProperty.PREFER_QUERY_MODE.set(props, "simple"); to your code and it works fine.
I would treat simple query mode as a workaround only, and I would refrain from recommending "simple" by default.
> And apparently query_id is not calculated for that.
Do you mean backend does not produce query_id for extended queries? It sounds strange.
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-20 16:46 ` "goranschwarz (@goranschwarz)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: goranschwarz (@goranschwarz) @ 2024-03-20 16:46 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
I can verify that `preferQueryMode=simple` does change the behavior (`query_id` now has a value)
Then: **why** isn't `simple` the *default* (**probably** for some other good reason: like *performance* or *something else*)
If I should go ahead and change the jdbc URL for *all* involved client (appservers/and-various-tools), which is doable but not really the **preferred way**
Is there anyway to *force* the changes on the server side?
I would still **question** why `query_id` is NULL in `pg_stat_activity` even when the default setting for `preferQueryMode=extended`
When I investigate even further I can see that `queryid` in `pg_stat_statements` **does** have a value... (so the calculation *seems* to happen, but not just for `pg_stat_activity`)
And I agree with @vlsi that it's strange that `pg_stat_activity.query_id` isn't calculated by the server/backend, with `preferQueryMode=extended`
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-21 14:40 ` "davecramer (@davecramer)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: davecramer (@davecramer) @ 2024-03-21 14:40 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
>
> Do you mean backend does not produce query_id for extended queries? It sounds strange.
That is correct. Known issue. https://postgrespro.com/list/thread-id/2652444
Dave
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-21 14:45 ` "davecramer (@davecramer)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: davecramer (@davecramer) @ 2024-03-21 14:45 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
> I can verify that `preferQueryMode=simple` does change the behavior (`query_id` now has a value) Then: **why** isn't `simple` the _default_ (**probably** for some other good reason: like _performance_ or _something else_)
To avoid SQL injection
>
> If I should go ahead and change the jdbc URL for _all_ involved client (appservers/and-various-tools), which is doable but not really the **preferred way** Is there anyway to _force_ the changes on the server side?
No
>
> I would still **question** why `query_id` is NULL in `pg_stat_activity` even when the default setting for `preferQueryMode=extended` When I investigate even further I can see that `queryid` in `pg_stat_statements` **does** have a value... (so the calculation _seems_ to happen, but not just for `pg_stat_activity`)
see https://postgrespro.com/list/thread-id/2652444
>
> And I agree with @vlsi that it's strange that `pg_stat_activity.query_id` isn't calculated by the server/backend, with `preferQueryMode=extended`
Well .... we don't control everything :(
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-21 16:31 ` "goranschwarz (@goranschwarz)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: goranschwarz (@goranschwarz) @ 2024-03-21 16:31 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
> To avoid SQL injection
So a pretty good reason to **not** go to `preferQueryMode=simple`
> Well .... we don't control everything :(
But a bug/feature-request for the issue can be raised???
Has it been done?
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-22 14:09 ` "davecramer (@davecramer)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: davecramer (@davecramer) @ 2024-03-22 14:09 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
You can add a request onto the email thread I referenced, but I wouldn't get my hopes up.
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2024-03-22 14:20 ` "vlsi (@vlsi)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: vlsi (@vlsi) @ 2024-03-22 14:20 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
> To avoid SQL injection
Technically speaking, `simple` mode should protect from SQL injections, so the use of `simple` mode with up-to-date driver should have the same level of security as regular `extended` mode.
^ permalink raw reply [nested|flat] 17+ messages in thread
* Re: [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql
@ 2025-02-26 08:26 ` "yszzu1 (@yszzu1)" <[email protected]>
15 siblings, 0 replies; 17+ messages in thread
From: yszzu1 (@yszzu1) @ 2025-02-26 08:26 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
> I met a problem, a SQL statement is execute very fast in psql, but if run in the java code, the execution is very slow, so I think the jdbc driver have some issue.
>
> can't try each perperty in org.postgresql.PGProperty
not related to this issue. java client read long text/varchar (200k chars) spent a lot of time, psql is tested in cloud server which is much closer to DB.
not easy to find the route cause, it may be easyer if has query_id
^ permalink raw reply [nested|flat] 17+ messages in thread
end of thread, other threads:[~2025-02-26 08:26 UTC | newest]
Thread overview: 17+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2024-03-15 19:50 [pgjdbc/pgjdbc] issue #3166: query_id in pg_stat_activity is NULL when connecting from JDBC, but not from psql "goranschwarz (@goranschwarz)" <[email protected]>
2024-03-18 20:42 ` "davecramer (@davecramer)" <[email protected]>
2024-03-18 21:35 ` "goranschwarz (@goranschwarz)" <[email protected]>
2024-03-18 21:44 ` "goranschwarz (@goranschwarz)" <[email protected]>
2024-03-19 19:54 ` "davecramer (@davecramer)" <[email protected]>
2024-03-19 21:07 ` "goranschwarz (@goranschwarz)" <[email protected]>
2024-03-19 21:51 ` "davecramer (@davecramer)" <[email protected]>
2024-03-20 11:46 ` "davecramer (@davecramer)" <[email protected]>
2024-03-20 12:42 ` "davecramer (@davecramer)" <[email protected]>
2024-03-20 13:05 ` "vlsi (@vlsi)" <[email protected]>
2024-03-20 16:46 ` "goranschwarz (@goranschwarz)" <[email protected]>
2024-03-21 14:40 ` "davecramer (@davecramer)" <[email protected]>
2024-03-21 14:45 ` "davecramer (@davecramer)" <[email protected]>
2024-03-21 16:31 ` "goranschwarz (@goranschwarz)" <[email protected]>
2024-03-22 14:09 ` "davecramer (@davecramer)" <[email protected]>
2024-03-22 14:20 ` "vlsi (@vlsi)" <[email protected]>
2025-02-26 08:26 ` "yszzu1 (@yszzu1)" <[email protected]>
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox