On 28 Feb 2024, at 17:08, Guyren Howe <guy...@gmail.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.

Reply via email to