There are 2 instances in SQL where the columns of a table are inferred from the table they are part of, which is SELECT * and INSERT without column names. This Feature Request is to allow certain columns to be "hidden" in those two cases. The idea is that a column with the HIDDEN (possibly we separate the two cases so a HIDDEN_SELECT and HIDDEN_INSERT are two separate attributes). This feature would allow some interesting construct in particular when migrating from other databases or when replicating from them. An example is the ability to retain the Oracle ROWID which would be stored in a separate column with the HIDDEN attribute. If columns are explicitly named in an INSERT or SELECT statement, then they would work as usual, they would only be hidden when not specifically asked for. Another usecase beyond rowid would be to have them as temporary computed columns, for virtual columns then this feature could be used to allow selection of only the computed value (for example order value after VAT has been added).