Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
02.11.2007, 01:32
|
|||
|---|---|---|---|
|
|||
composite type в качестве primary key |
|||
|
#18+
Есть желание в качестве PK использовать поле составного типа ( "uri" INTEGER, "id" BIGINT ) которое при отдаче на клиент выглядело бы как BIGINT, преобразовываясь по функции a la uri << 40 || id && 1099511627775 (т.е. как BIGINT содержащий в трех старших разрядах uri, а в остальных младших id), но при этом, чтобы самом постгресе можно было, при желании, обращаться к полям типа (uri, id) по раздельности. Подскажите, пожалуйста, возможен ли такой фокус в постгресе? Если да, то куда копать? Или есть более простые методы решения подобной задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.11.2007, 01:43
|
|||
|---|---|---|---|
|
|||
composite type в качестве primary key |
|||
|
#18+
up! Неужели никто не сталкивался? Или вопрос, в принципе, неверно поставлен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.11.2007, 10:17
|
|||
|---|---|---|---|
|
|||
composite type в качестве primary key |
|||
|
#18+
Дмитрий РябовЕсть желание в качестве PK использовать поле составного типа ( "uri" INTEGER, "id" BIGINT ) которое при отдаче на клиент выглядело бы как BIGINT, преобразовываясь по функции a la uri << 40 || id && 1099511627775 (т.е. как BIGINT содержащий в трех старших разрядах uri, а в остальных младших id), но при этом, чтобы самом постгресе можно было, при желании, обращаться к полям типа (uri, id) по раздельности. Подскажите, пожалуйста, возможен ли такой фокус в постгресе? Если да, то куда копать? Или есть более простые методы решения подобной задачи? Проблема в чем? Не знаете как индекс назначить? Или что? Объясните точно чего Вы хотите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.11.2007, 10:37
|
|||
|---|---|---|---|
|
|||
composite type в качестве primary key |
|||
|
#18+
Чего-то вроде этого? create type uri_id_type as ( uri integer, id bigint ); create table .... ( uri_id uri_id_type, ..... ); create function uri_id_show(uri_id_type) returns bigint as $_$ select ($1.uri::bigint<<40 + $1.id)::bigint; $_$ language 'sql'; create unique index uri_id_idx on ...(uri_id_show(uri_id)); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.11.2007, 14:28
|
|||
|---|---|---|---|
|
|||
composite type в качестве primary key |
|||
|
#18+
может быть проще обойтись без дополнительного типа? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=2004864]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 360ms |

| 0 / 0 |
