public inbox for [email protected]  
help / color / mirror / Atom feed
Figure out nullability of query parameters
2+ messages / 2 participants
[nested] [flat]

* Figure out nullability of query parameters
@ 2025-06-27 14:30  Giacomo Cavalieri <[email protected]>
  0 siblings, 1 reply; 2+ messages in thread

From: Giacomo Cavalieri @ 2025-06-27 14:30 UTC (permalink / raw)
  To: [email protected]

Hello!
I’m Giacomo, I’m the maintainer of <https://github.com/giacomocavalieri/squirrel;, a tool that can generate type safe bindings to run and decode the results of Postgres queries. It does that by implementing the extended query protocol, which, among other things, returns the OIDs of the query parameters’ types.
This is really handy and has worked great so far but I’m running into some rough edges when it comes to the nullability of query parameters.

Take a query like this one:
```
insert into some_table(not_null_col, nullable_column)
values ($1, $2)
```
It would be really handy to know that `$1` is being used as a non nullable value, while `$2` could actually be null. Can this already be achieve today, or would there be a way to surface this kind of information for query parameters in the extended protocol?

Sorry if this is not the proper list, I’m very new to all of this :)
Thanks!

Giacomo

^ permalink  raw  reply  [nested|flat] 2+ messages in thread

* Re: Figure out nullability of query parameters
@ 2025-06-27 14:45  Petr Kada <[email protected]>
  parent: Giacomo Cavalieri <[email protected]>
  0 siblings, 0 replies; 2+ messages in thread

From: Petr Kada @ 2025-06-27 14:45 UTC (permalink / raw)
  To: Giacomo Cavalieri <[email protected]>; +Cc: [email protected]

Hi,
I have no idea how/if this is possible using the query protocol but I would
try to parse the INSERT statement to get the table and columns names and
then look up whether they are nullable in the information schema (
https://www.postgresql.org/docs/current/infoschema-columns.html)

Petr

On Fri, Jun 27, 2025 at 4:31 PM Giacomo Cavalieri <
[email protected]> wrote:

> Hello!
> I’m Giacomo, I’m the maintainer of <
> https://github.com/giacomocavalieri/squirrel;, a tool that can generate
> type safe bindings to run and decode the results of Postgres queries. It
> does that by implementing the extended query protocol, which, among other
> things, returns the OIDs of the query parameters’ types.
> This is really handy and has worked great so far but I’m running into some
> rough edges when it comes to the nullability of query parameters.
>
> Take a query like this one:
> ```
> insert into some_table(not_null_col, nullable_column)
> values ($1, $2)
> ```
> It would be really handy to know that `$1` is being used as a non nullable
> value, while `$2` could actually be null. Can this already be achieve
> today, or would there be a way to surface this kind of information for
> query parameters in the extended protocol?
>
> Sorry if this is not the proper list, I’m very new to all of this :)
> Thanks!
>
> Giacomo
>


^ permalink  raw  reply  [nested|flat] 2+ messages in thread


end of thread, other threads:[~2025-06-27 14:45 UTC | newest]

Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2025-06-27 14:30 Figure out nullability of query parameters Giacomo Cavalieri <[email protected]>
2025-06-27 14:45 ` Petr Kada <[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