> "Mark Woodward" <[EMAIL PROTECTED]> writes: >>> I'm too lazy to run an experiment, but I believe it would. Datum is >>> involved in almost every function-call API in the backend. In >>> particular this means that it would affect performance-critical code >>> paths. > >> I hear you on the "lazy" part, but if OID becomes a structure, then you >> are still comparing a native type until you get a match, then you make >> one >> more comparison to confirm it is the right one, or move on. > > No, you're missing the point entirely: on 32-bit architectures, passing > a 32-bit integral type to a function is an extremely well optimized > operation, as is returning a 32-bit integral type. Passing or > returning a 64-bit struct is, um, not so well optimized.
That's only if you call by value, call by reference is just as optimized. > > There's also the small problem that it really has to fit into Datum. > Would it break a lot if you add more to a datum? ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match