pgjdbc/pgjdbc GitHub issues and pull requests (mirror)
help / color / mirror / Atom feed[pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
37+ messages / 2 participants
[nested] [flat]
* [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-11 19:40 "davecramer (@davecramer)" <[email protected]>
0 siblings, 0 replies; 37+ messages in thread
From: davecramer (@davecramer) @ 2025-04-11 19:40 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
We also now have to handle the protocolNegotiationMessage
As of https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=285613c60a7aff5daaf281c67002483b0... the protocol version has been bumped to 3.2. This will take effect in version 18.
The only protocol change is wider cancel keys. Previously cancel keys were 4 bytes wide now they can have a maximum of 256 bytes but currently the server sends 32 byte wide cancel keys.
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=a460251f0a1ac987f0225203ff9593704...
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-13 07:09 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-13 07:09 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ConnectionFactory.java)
Should we restrict the supported protocol versions only? If a newer protocol adds something in 3.7, the old existing drivers won't support 3.7 features anyway.
It looks it would be nice if the driver could reject unsupported values, so the users know the value they configure is ignored or unsupported.
WDYT?
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-13 07:17 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-13 07:17 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/QueryExecutorBase.java)
Have you considered nullable array instead so we don't allocate the array?
```suggestion
private byte @Nullable[] cancelKey;
```
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-13 07:28 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-13 07:28 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/PGStream.java)
WDYT of creating `class ProtocolVersion { int major; int minor; }`? (or `short major, minor`)
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-13 07:29 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-13 07:29 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java)
The return type of `ProtocolVersion` would be easier to reason here
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-13 07:39 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-13 07:39 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/QueryExecutorImpl.java)
```suggestion
byte[] ckey;
```
The allocation here is not needed. `pgStream.receive(..)` below would reallocate
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-13 08:02 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-13 08:02 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/QueryExecutorImpl.java)
`ProtocolVersion.v3_0.equals(getProtocolVersion...)` could be helpful here
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-13 08:04 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-13 08:04 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/QueryExecutorImpl.java)
Please include the failure detains into the message. Something like "cancel key should be 4 bytes only for protocol version 3.0. Got .. from the backend" would probably be easier to understand for those who get the exception in their systems.
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-13 08:06 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-13 08:06 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/QueryExecutorImpl.java)
WDYT of one of the following so it could return `ProtocolVersion` instance rather multiple minor/major getters?
`getProtocolVersionInfo()`
* Emphasizes that this is more than just a number now.
* Common naming pattern when moving from primitive to object.
`getProtocolVersionObject()`
* Straightforward, explicitly communicates it's an object.
`getProtocolVersionDetails()`
* Suggests there might be more metadata than just a version number.
`getProtocolVersionValue()`
* Implies it's the full value, which works if the class holds major/minor etc.
`getFullProtocolVersion()`
* Indicates a more complete version compared to the basic int.
`getProtocolVersionEx()` (or `getProtocolVersionExtended()`)
* Simple, adds the "extended" idea, though a bit more API-looking.
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-13 08:10 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-13 08:10 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/test/java/org/postgresql/test/jdbc2/StatementTest.java:954)
Does the test differ from `closeInProgressStatement`? (looks like the only difference is 3.2 in the setup, however, I can't tell if the rest is the same or not)
If the core is the same, could you factor it to a say `private` method which you call from both of the tests?
It is hard to review and maintain code with large amount of duplicate logic.
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-14 19:31 "davecramer (@davecramer)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: davecramer (@davecramer) @ 2025-04-14 19:31 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ConnectionFactory.java)
Probably, will fix
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-15 18:26 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-15 18:26 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/PGStream.java)
null is the default value. Let's omit the explicit assignment
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-15 18:27 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-15 18:27 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ProtocolVersions.java)
I guess the constants can be moved to ProtocolVesion class
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-15 18:29 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-15 18:29 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java)
ProtocolVersion.from(..) would allow returning the well-known constants
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-15 18:29 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-15 18:29 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/QueryExecutorImpl.java:181)
I wonder if it breaks previous api
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 01:45 "davecramer (@davecramer)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: davecramer (@davecramer) @ 2025-04-16 01:45 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/QueryExecutorImpl.java:181)
I don't think so, the API is pretty much internal. That said we will see.
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 11:41 "davecramer (@davecramer)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: davecramer (@davecramer) @ 2025-04-16 11:41 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
@vlsi I'm ready to merge this barring any objections
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 11:48 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 11:48 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/Parser.java)
`protocolVersion` looks unused in the method. Should we remove the parameter?
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 11:52 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 11:52 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ProtocolVersion.java)
Can we remove no-arg constructor?
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 11:57 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 11:57 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ProtocolVersion.java)
I'm not sure `(int protocol)` constructor belongs here at it is an implementation detail of `NegotiateProtocolVersion` message. Let's remove (int) constructor, and let's make the other constructor `private`.
```suggestion
private ProtocolVersion(int major, int minor) {
this.major = major;
this.minor = minor;
}
```
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 12:00 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 12:00 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ProtocolVersion.java)
The naming in `ServerVersion` is like `v8_4`. WDYT of using the same naming?
Should we move the constants to the top of the class as it is probably the most useful info when reading the class?
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 12:02 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 12:02 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ProtocolVersion.java)
WDYT of a bit more verbose name?
```suggestion
public static ProtocolVersion fromMajorMinor(int major, int minor) throws SQLException {
```
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 12:02 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 12:02 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/QueryExecutorBase.java)
```suggestion
private byte @Nullable[] cancelKey;
```
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 12:04 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 12:04 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java)
Should we log the unrecognized options?
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 12:04 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 12:04 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java)
Did you intend something as follows here?
```suggestion
pgStream.setProtocolVersion(ProtocolVersion.fromMajorMinor(...protocol));
```
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 12:07 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 12:07 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ProtocolVersion.java)
By the way, `ServerVersion` is currently implemented as `enum + interface`. It might be ok to have `ProtocolVersion` as an-enum. It would yield equals/hashCode and the named references for free.
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 13:17 "davecramer (@davecramer)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: davecramer (@davecramer) @ 2025-04-16 13:17 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java)
Probably, yes
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 13:17 "davecramer (@davecramer)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: davecramer (@davecramer) @ 2025-04-16 13:17 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java)
We probably should throw an exception here as the connection should not be completed with invalid options
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 13:18 "davecramer (@davecramer)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: davecramer (@davecramer) @ 2025-04-16 13:18 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ProtocolVersion.java)
Done
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 13:19 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 13:19 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ProtocolVersion.java)
Sadly `values()` allocates a fresh array for every call. WDYT of storing it in a private static field?
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 13:34 "davecramer (@davecramer)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: davecramer (@davecramer) @ 2025-04-16 13:34 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java)
Done
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 15:06 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 15:06 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ProtocolVersion.java)
```suggestion
private static final ProtocolVersion[] values = values();
```
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 15:09 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 15:09 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/ProtocolVersion.java)
WDYT of the usual `PSQLException(GT.tr` dance?
```suggestion
throw new PSQLException(GT.tr("Unsupported protocol version major: {0}, minor: {1}",
major, minor), PSQLState.NOT_IMPLEMENTED);
```
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 15:11 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 15:11 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java)
Have you considered passing `protocol major/mior` as `ProtocolVersion`?
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 15:12 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 15:12 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java)
Have you considered passing `protocol major/minor` as `ProtocolVersion`?
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-16 15:14 "vlsi (@vlsi)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: vlsi (@vlsi) @ 2025-04-16 15:14 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
(on pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java)
The result of `doAuthentication` does not seem to be used. WDYT of reverting the method to `void`?
^ permalink raw reply [nested|flat] 37+ messages in thread
* Re: [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys.
@ 2025-04-17 12:34 "davecramer (@davecramer)" <[email protected]>
35 siblings, 0 replies; 37+ messages in thread
From: davecramer (@davecramer) @ 2025-04-17 12:34 UTC (permalink / raw)
To: pgjdbc/pgjdbc <[email protected]>
@vlsi I think I have answered all your requests
^ permalink raw reply [nested|flat] 37+ messages in thread
end of thread, other threads:[~2025-04-17 12:34 UTC | newest]
Thread overview: 37+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2025-04-11 19:40 [pgjdbc/pgjdbc] PR #3592: Handle protocol 3.2 and wider cancel keys. "davecramer (@davecramer)" <[email protected]>
2025-04-13 07:09 ` "vlsi (@vlsi)" <[email protected]>
2025-04-13 07:17 ` "vlsi (@vlsi)" <[email protected]>
2025-04-13 07:28 ` "vlsi (@vlsi)" <[email protected]>
2025-04-13 07:29 ` "vlsi (@vlsi)" <[email protected]>
2025-04-13 07:39 ` "vlsi (@vlsi)" <[email protected]>
2025-04-13 08:02 ` "vlsi (@vlsi)" <[email protected]>
2025-04-13 08:04 ` "vlsi (@vlsi)" <[email protected]>
2025-04-13 08:06 ` "vlsi (@vlsi)" <[email protected]>
2025-04-13 08:10 ` "vlsi (@vlsi)" <[email protected]>
2025-04-14 19:31 ` "davecramer (@davecramer)" <[email protected]>
2025-04-15 18:26 ` "vlsi (@vlsi)" <[email protected]>
2025-04-15 18:27 ` "vlsi (@vlsi)" <[email protected]>
2025-04-15 18:29 ` "vlsi (@vlsi)" <[email protected]>
2025-04-15 18:29 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 01:45 ` "davecramer (@davecramer)" <[email protected]>
2025-04-16 11:41 ` "davecramer (@davecramer)" <[email protected]>
2025-04-16 11:48 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 11:52 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 11:57 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 12:00 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 12:02 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 12:02 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 12:04 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 12:04 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 12:07 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 13:17 ` "davecramer (@davecramer)" <[email protected]>
2025-04-16 13:17 ` "davecramer (@davecramer)" <[email protected]>
2025-04-16 13:18 ` "davecramer (@davecramer)" <[email protected]>
2025-04-16 13:19 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 13:34 ` "davecramer (@davecramer)" <[email protected]>
2025-04-16 15:06 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 15:09 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 15:11 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 15:12 ` "vlsi (@vlsi)" <[email protected]>
2025-04-16 15:14 ` "vlsi (@vlsi)" <[email protected]>
2025-04-17 12:34 ` "davecramer (@davecramer)" <[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