Caleb Welton <cwel...@pivotal.io> writes: > ... but there is some circularity especially with respect to type > definitions and the functions that define those types. If you changed the > definition of prorettype into a regtype then bootstrap would try to lookup > the type before the pg_type entry exists and throw a fit. That's handled > in SQL via shell types. If we wanted bootstrap to be able to handle this > then we'd have to make two passes of pg_type, the first to create the > shells and the second to handle populating the serialization functions.
I think what Mark is proposing is to do the lookups while preparing the .bki file, which would eliminate the circularity ... at the cost of having to, essentially, reimplement regprocedure_in and friends in Perl. If we push hard on doing the other thing that you're proposing, which is to take as much as possible out of the pure bootstrap-data phase, then maybe it wouldn't be worth the work to do that. Not sure. On the other hand, I'm not very much in love with the thought of having two different notations for "core" and "not so core" built-in function creation. There's something to be said for keeping all the data in one format. If we push on making the .bki creation script smarter, then in addition to the name lookup facilities Mark envisions, we could have things like default column values. That would take us a long way toward the same ease-of-use as full SQL definitions. We'd still be lacking some error checks that the SQL commands could perform; but we've traditionally used sanity checks in the regression tests to do cross-checking that covers more or less those same bases. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers