私は隠されたデータ型であることについての情報をウェブとPGSQLのドキュメントで精査しましたが、これまでのところ不足しています。私は前の二重のアンダースコア(__some_type)を持つ戻り値の型を持つ関数を持つ既存のデータベースに取り組んでいます。 PGAdmin3では、オプションでツリービューにタイプを表示することができます。さまざまな機能で使用される認識可能なタイプがありますが、そうでないものはありますが、これらのタイプは見当たりません。私は、PyCharm Full editionを通して、PostgreSQL DBに接続し、私が言及しているすべてのタイプを見ることができることを学びました。同様にコンソールでは "\ dT"と表示されますが、PGAdmin自体には表示されません。PGAdmin3の隠しオブジェクトのタイプ
質問:1つまたは2つのアンダースコアが前に付いているタイプはどう扱われますか? (__some_type)。
フォロー:私は未検証のソースがアンダースコアで始まる型の作成からユーザーを制限する規則を記述しますが、PG源からこれを確認していない見つけました。 https://momjian.us/main/writings/pgsql/aw_pgsql_book/node223.html
そして、私が言及ラインはすべての道「NOTES」の下底部に向かっている:
タイプ名が(下線文字で始めることはできません "_ここ
はそれへのリンクあり")、 は31文字しか使用できません。これは、Postgresが という名前の配列型を暗黙的に作成し、名前の末尾にアンダースコアが付加された という名前を持つためです。
続き、検索結果は: 私が話す何への参照を発見したが、ユーザーはこの「制限」を違反した場合には、このような種類の行動、あるいは何が起こるかについての詳細には触れません。 6.3ドキュメントから
PGソースに:
前述したように、Postgresは完全に基本型の配列をサポートします。 さらに、Postgresはユーザー定義型の配列もサポートしています。 タイプを定義すると、Postgresはそのタイプの配列 を自動的にサポートします。歴史的な理由から、配列タイプは、ユーザ定義型と同じ名前の があり、_ が前に付いています。コンポジット型は、システムがすでに内部でどのように見えるのかをすでに理解しているため、 に定義されている関数は必要ありません。
制限
タイプ名は、アンダースコア文字( "_")で始めることはできませんし、 のみ15の文字が長くなる可能性があります。これは、Postgresが という名前の配列型を暗黙的に作成し、名前の末尾にアンダースコアが付加された という名前を持つためです。
ありがとう!私は最終的に6.3から9.xまでのさまざまな文書をすべて読んだのですが、あなたは正しいです。 –