System catalogs can be used to obtain information about the Symfoware Server system and database objects.
However, system catalogs may change when the Symfoware Server version is upgraded. Also, there are many system catalogs that return information that is inherent to Symfoware Server.
Accordingly, reference the information schema defined in standard SQL (information_schema) wherever possible. Note also that queries specifying "*" in the selection list must be avoided to prevent columns being added.
See
Refer to "The Information Schema" under "Client Interfaces" in the PostgreSQL Documentation for details.
The system catalog must be referenced to obtain information not found in the information schema. Instead of directly referencing the system catalog in the application, define a view for that purpose. Note, however, that when defining the view, the column name must be clearly specified after the view name.
An example of defining and using a view is shown below.
Example
CREATE VIEW my_tablespace_view(spcname) AS SELECT spcname FROM pg_tablespace; SELECT * FROM my_tablespace_view V1, pg_tables T1 WHERE V1.spcname = T1.tablespace;
If changes are made to a system catalog, the user will be able to take action by simply making changes to the view, without the need to make changes to the application.
The following shows an example of taking action by redefining a view as if no changes were made.
The pg_tablespace system catalog is redefined in response to the column name being changed from spcname to spacename.
Example
DROP VIEW my_tablespace_view; CREATE VIEW my_tablespace_view(spcname) AS SELECT spacename FROM pg_tablespace;