+ около элементов оценивают postgresql

В то время как я пытался решить проблему (спрошенный относительно Переполнения стека), я просто наталкиваюсь на том типе результата, когда я хочу видеть, какие данные хранятся в Перечислении:

 Schema |    Name     | Internal name | Size |    Elements    | Owner | Access privileges | Description 
--------+-------------+---------------+------+----------------+-------+-------------------+-------------
 public | rights_enum | rights_enum   | 4    | Administrateur+| cvt   |                   | 
        |             |               |      | Utilisateur    |       |                   | 

где rights_enum мой перечисляемый тип. Как Вы видите, у меня есть 2 значения в этом Перечислении:

  • Administrateur
  • Utilisateur

Из чего значение + рядом со значениями Элемента (рядом с Administrateur)? Я не думаю, что это - просто что-то для дисплея.

Редактирование: Вот моя пользовательская таблица (почти пуста из-за разработки):

 id |        email        |     phone      |                           hashpass                           |  nom   | prenom |   rights    
----+---------------------+----------------+--------------------------------------------------------------+--------+--------+-------------
  1 | micheljean@test.com | 06 54 32 12 34 | $2y$10$5HMULhzKrWSEfCeGklyCueVVwySPFKMqrxw/EqF7V0q3FM99Ejvnu | michel | jean   | Utilisateur
1
задан 26 November 2019 в 14:30

2 ответа

, Каково значение + рядом со значениями Элемента (рядом с Administrateur)? Я не думаю, что это - просто что-то для дисплея.

Короткий ответ: Да это. + справа от поля представляет новую строку.

ответ Long: показанный результат прибывает от \dT+ в psql с перечислимым типом как параметр.

, Например:

=> create type mytype as enum('one','two','three');
=> \dT+ mytype
                                      List of data types
 Schema |  Name  | Internal name | Size | Elements | Owner  | Access privileges | Description 
--------+--------+---------------+------+----------+--------+-------------------+-------------
 public | mytype | mytype        | 4    | one     +| daniel |                   | 
        |        |               |      | two     +|        |                   | 
        |        |               |      | three    |        |                   | 

Эта команда отправляет запрос, который Вы видите с установкой: \set ECHO_HIDDEN on

=> \set ECHO_HIDDEN on
=> \dT+ mytype
********* QUERY **********
SELECT n.nspname as "Schema",
  pg_catalog.format_type(t.oid, NULL) AS "Name",
  t.typname AS "Internal name",
  CASE WHEN t.typrelid != 0
      THEN CAST('tuple' AS pg_catalog.text)
    WHEN t.typlen < 0
      THEN CAST('var' AS pg_catalog.text)
    ELSE CAST(t.typlen AS pg_catalog.text)
  END AS "Size",
  pg_catalog.array_to_string(
      ARRAY(
          SELECT e.enumlabel
          FROM pg_catalog.pg_enum e
          WHERE e.enumtypid = t.oid
          ORDER BY e.enumsortorder
      ),
      E'\n'
  ) AS "Elements",
  pg_catalog.pg_get_userbyid(t.typowner) AS "Owner",
pg_catalog.array_to_string(t.typacl, E'\n') AS "Access privileges",
    pg_catalog.obj_description(t.oid, 'pg_type') as "Description"
FROM pg_catalog.pg_type t
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
WHERE (t.typrelid = 0 OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c WHERE c.oid = t.typrelid))
  AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem AND el.typarray = t.oid)
  AND (t.typname OPERATOR(pg_catalog.~) '^(mytype) 

Затем можно найти источник этих новых строк: они прибывают от pg_catalog.array_to_string() с перечислимыми маркировками, переданными как массив и E'\n' как разделитель, иначе перевод строки.

OR pg_catalog.format_type(t.oid, NULL) OPERATOR(pg_catalog.~) '^(mytype)

Затем можно найти источник этих новых строк: они прибывают от pg_catalog.array_to_string() с перечислимыми маркировками, переданными как массив и E'\n' как разделитель, иначе перевод строки.

) AND pg_catalog.pg_type_is_visible(t.oid) ORDER BY 1, 2;

Затем можно найти источник этих новых строк: они прибывают от pg_catalog.array_to_string() с перечислимыми маркировками, переданными как массив и E'\n' как разделитель, иначе перевод строки.

1
ответ дан 7 December 2019 в 13:13

Администратор в таблице отмечен +, чтобы указать, что человек, который в настоящее время получает доступ к базе данных, является администратором базы данных, не неадминистраторским пользователем.

1
ответ дан 7 December 2019 в 13:13

Другие вопросы по тегам:

Похожие вопросы: