Properties

Name: attributes 
Owner: postgres 
Has rules:  
Has Triggers:  
Comment:  

Columns

Name Type Length
  udt_catalog  sql_identifier  -1 
  udt_schema  sql_identifier  -1 
  udt_name  sql_identifier  -1 
  attribute_name  sql_identifier  -1 
  ordinal_position  cardinal_number  -1 
  attribute_default  character_data  -1 
  is_nullable  character_data  -1 
  data_type  character_data  -1 
  character_maximum_length  cardinal_number  -1 
  character_octet_length  cardinal_number  -1 
  character_set_catalog  sql_identifier  -1 
  character_set_schema  sql_identifier  -1 
  character_set_name  sql_identifier  -1 
  collation_catalog  sql_identifier  -1 
  collation_schema  sql_identifier  -1 
  collation_name  sql_identifier  -1 
  numeric_precision  cardinal_number  -1 
  numeric_precision_radix  cardinal_number  -1 
  numeric_scale  cardinal_number  -1 
  datetime_precision  cardinal_number  -1 
  interval_type  character_data  -1 
  interval_precision  character_data  -1 
  attribute_udt_catalog  sql_identifier  -1 
  attribute_udt_schema  sql_identifier  -1 
  attribute_udt_name  sql_identifier  -1 
  scope_catalog  sql_identifier  -1 
  scope_schema  sql_identifier  -1 
  scope_name  sql_identifier  -1 
  maximum_cardinality  cardinal_number  -1 
  dtd_identifier  sql_identifier  -1 
  is_derived_reference_attribute  character_data  -1 
Total: 31 column(s)

SQL


CREATE VIEW attributes AS
    SELECT (current_database())::sql_identifier AS udt_catalog, (nc.nspname)::sql_identifier AS udt_schema, (c.relname)::sql_identifier AS udt_name, (a.attname)::sql_identifier AS attribute_name, (a.attnum)::cardinal_number AS ordinal_position, (pg_get_expr(ad.adbin, ad.adrelid))::character_data AS attribute_default, (CASE WHEN (a.attnotnull OR ((t.typtype = 'd'::"char") AND t.typnotnull)) THEN 'NO'::text ELSE 'YES'::text END)::character_data AS is_nullable, (CASE WHEN ((t.typelem <> (0)::oid) AND (t.typlen = -1)) THEN 'ARRAY'::text WHEN (nt.nspname = 'pg_catalog'::name) THEN format_type(a.atttypid, NULL::integer) ELSE 'USER-DEFINED'::text END)::character_data AS data_type, (_pg_char_max_length(_pg_truetypid(a.*, t.*), _pg_truetypmod(a.*, t.*)))::cardinal_number AS character_maximum_length, (_pg_char_octet_length(_pg_truetypid(a.*, t.*), _pg_truetypmod(a.*, t.*)))::cardinal_number AS character_octet_length, (NULL::character varying)::sql_identifier AS character_set_catalog, (NULL::character varying)::sql_identifier AS character_set_schema, (NULL::character varying)::sql_identifier AS character_set_name, (NULL::character varying)::sql_identifier AS collation_catalog, (NULL::character varying)::sql_identifier AS collation_schema, (NULL::character varying)::sql_identifier AS collation_name, (_pg_numeric_precision(_pg_truetypid(a.*, t.*), _pg_truetypmod(a.*, t.*)))::cardinal_number AS numeric_precision, (_pg_numeric_precision_radix(_pg_truetypid(a.*, t.*), _pg_truetypmod(a.*, t.*)))::cardinal_number AS numeric_precision_radix, (_pg_numeric_scale(_pg_truetypid(a.*, t.*), _pg_truetypmod(a.*, t.*)))::cardinal_number AS numeric_scale, (_pg_datetime_precision(_pg_truetypid(a.*, t.*), _pg_truetypmod(a.*, t.*)))::cardinal_number AS datetime_precision, (NULL::character varying)::character_data AS interval_type, (NULL::character varying)::character_data AS interval_precision, (current_database())::sql_identifier AS attribute_udt_catalog, (nt.nspname)::sql_identifier AS attribute_udt_schema, (t.typname)::sql_identifier AS attribute_udt_name, (NULL::character varying)::sql_identifier AS scope_catalog, (NULL::character varying)::sql_identifier AS scope_schema, (NULL::character varying)::sql_identifier AS scope_name, (NULL::integer)::cardinal_number AS maximum_cardinality, (a.attnum)::sql_identifier AS dtd_identifier, ('NO'::character varying)::character_data AS is_derived_reference_attribute FROM (pg_attribute a LEFT JOIN pg_attrdef ad ON (((a.attrelid = ad.adrelid) AND (a.attnum = ad.adnum)))), pg_class c, pg_namespace nc, (pg_type t JOIN pg_namespace nt ON ((t.typnamespace = nt.oid))) WHERE ((((((a.attrelid = c.oid) AND (a.atttypid = t.oid)) AND (nc.oid = c.relnamespace)) AND (a.attnum > 0)) AND (NOT a.attisdropped)) AND (c.relkind = 'c'::"char"));


ALTER TABLE information_schema.attributes OWNER TO postgres;

See Also

List of views