On Wed, Mar 24, 2021 at 11:41 AM Dilip Kumar <dilipbal...@gmail.com> wrote: > Okay, that sounds like a reasonable design idea. But the problem is > that in index_form_tuple we only have index tuple descriptor, not the > heap tuple descriptor. Maybe we will have to pass the heap tuple > descriptor as a parameter to index_form_tuple. I will think more > about this that how can we do that.
Another option might be to decide that the pg_attribute tuples for the index columns always have to match the corresponding table columns. So, if you alter with ALTER TABLE, it runs around and updates all of the indexes to match. For expression index columns, we could store InvalidCompressionMethod, causing index_form_tuple() to substitute the run-time default. That kinda sucks, because it's a significant impediment to ever reducing the lock level for ALTER TABLE .. ALTER COLUMN .. SET COMPRESSION, but I'm not sure we have the luxury of worrying about that problem right now. -- Robert Haas EDB: http://www.enterprisedb.com