レーザーの言うことは真実ですが、SRIDが0と表示されるのは、未定義のSRIDを0として報告するというPostgis開発者の決定によるものであると私は信じています。(私はこれを知っています。私はIRCに関する上記の議論に参加し、-1を支持しました。なぜなら、0よりも明らかに未定義であると考えるからです)。
geography_columnsビューの定義を見ると、
\df+ geography_columns
SELECT current_database() AS f_table_catalog,
n.nspname AS f_table_schema,
c.relname AS f_table_name,
a.attname AS f_geography_column,
postgis_typmod_dims(a.atttypmod) AS coord_dimension,
postgis_typmod_srid(a.atttypmod) AS srid,
postgis_typmod_type(a.atttypmod) AS type
FROM pg_class c,
pg_attribute a,
pg_type t,
pg_namespace n
WHERE t.typname = 'geography'::name AND a.attisdropped = false AND a.atttypid = t.oid AND a.attrelid = c.oid AND c.relnamespace = n.oid AND NOT pg_is_other_temp_schema(c.relnamespace) AND has_table_privilege(c.oid, 'SELECT'::text);
関数postgis_typmod_sridへの参照が表示されます。そのうさぎの穴に続いて、ここで定義されている関数が見つかります:
#define TYPMOD_SET_SRID(typmod, srid) ((typmod) = (((typmod) & 0xE00000FF) | ((srid & 0x001FFFFF)<<8))).
geography列を作成し、geography_columnsを確認することで、これを簡単に確認できます。カスタムの回転楕円体でジオメトリ列を作成することもできるので、WGS84の普及を考えると、地理タイプでこの機能を許可することは少し無意味に思えます。
`