Re: Content for talk on Postgres Type System at PostgresConf

From: Guyren Howe <guyren(at)gmail(dot)com>
To: Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Content for talk on Postgres Type System at PostgresConf
Date: 2024-02-29 22:47:57
Message-ID: 05C34416-A3DE-42CC-A95E-B1FD268D6574@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 28 Feb 2024, at 17:08, Guyren Howe <guyren(at)gmail(dot)com> wrote:
>
> I am to talk about Postgres’s type system at PGConf:
>
> https://postgresconf.org/conferences/2024/program/proposals/postgres-s-type-system
>
> I picked the issue because I think it’s poorly understood, greatly under-discussed, and an excellent way to empower postgres users.
>
> I am reasonably conversant with the issue. I’m not looking for others to write the talk for me, but in order to make the best talk I can, I’m asking:
>
> What would you want to see in such a talk?
>
> I’m planning on covering:
>
> - The built-in types that are underused and their advantages (eg inet)
> - domains
> - such things as details of arrays including multidimensional arrays
> - user-defined types, their relationship to tables, and generally how to use them
>
> I would spend most of the time discussing ways to make effective use of types. Some examples:
> - defining functions of rows so the table can be used kind of like a set of objects (including the dot notation for invoking functions)
> - using UDFs to make code clearer eg if you have an idiosyncratic functional index, define it using a function of the row, so it’s easy to get right when querying
> - using UDFs as a kind of better domain. eg differentiating imperial from metric units by requiring an explicit constructor, not just accepting any old number
>
> I would mention enumerated types, although I’m inclined to advise that their inflexibility (eg can’t delete or rearrange them) means that a related table is probably better (I’d be delighted to be proved wrong).
>
> Custom Range Types are an interesting feature, but I can’t think of a good use case. Any good examples?
>
> Automatic casting is a feature I’m aware of, but I’d be interested in any cool use cases.
>
>
> Anything I’m missing? Any existing good discussions of the subject?

Any gotchas about user defined types or arrays? I was only planning on discussing simple user defined types, without going into writing the optional features in C.

What is worth saying about custom range types? What even would be a good use case? A range of strings or ip address ranges, something like that, I suppose?

Is there a good case for enumerations versus a fk to a table? I guess if you’re sure you won’t need to change the values in the enumeration? Days of the week, that sort of thing.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2024-02-29 22:51:11 Re: Content for talk on Postgres Type System at PostgresConf
Previous Message David G. Johnston 2024-02-29 22:05:50 Re: Content for talk on Postgres Type System at PostgresConf