On Thu, Sep 05, 2013 at 10:41:25AM -0700, Jeff Janes wrote: > In order to avoid the rewrite, the code would have to be changed to > look up the column definition and if it specifies the scale, then > ignore the per-row n_header, and look at the n_header only if the > column is NUMERIC with no precision or scale. That should > conceptually be possible, but I don't know how hard it would be to > implement--it sounds pretty invasive to me. Then if the column was > altered from NUMERIC with scale to be a plain NUMERIC, it would have > to rewrite the table to enforce the row-wise scale to match the old > column-wise scale. Where as now that alter doesn't need a re-write. > I don't know if this would be an overall gain or not.
Invasive indeed. The type-supplementary data would need to reach essentially everywhere we now convey a type OID. Compare the invasiveness of adding collation support. However, this is not the first time it would have been useful. We currently store a type OID in every array and composite datum. That's wasteful and would be unnecessary if we reliably marshalled similar information to all the code needing it. Given a few more use cases, the effort would perhaps start to look credible relative to the benefits. -- Noah Misch EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers