Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Насколько можно доверять уникальности такой штуки / 5 сообщений из 5, страница 1 из 1
17.12.2006, 12:21
    #34205541
Насколько можно доверять уникальности такой штуки
Почему-то не хочется ставить дополнительные либы для генерации GUID-ов (отговорите?)

Поэтому вопрос -
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE OR REPLACE FUNCTION get_uuid()
  RETURNS VARCHAR( 32 ) AS
$BODY$BEGIN
	RETURN md5( 
		CAST(inet_client_addr() AS VARCHAR) || 
		CAST(inet_server_addr() AS VARCHAR) || 
		SESSION_USER || 
		CAST(current_timestamp AS VARCHAR) || 
		CAST(nextval('uuid_seq') AS VARCHAR)
	);
END$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
...
Рейтинг: 0 / 0
18.12.2006, 17:43
    #34208370
Jelis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Насколько можно доверять уникальности такой штуки
Ммм.... на сколько я понимаю, мд5 ( как и любая другая хеш функция) не может в ПРИНЦИПЕ возвращать уникальное значение. Так что теоретически, такое использовать нельзя. А приктически - думаю проблемм быть не должно, тем более, если на поле guid в базе поставить unique то максимум вылетит ошибка о нарушение уникальности раз в Нцать миллионов генераций.
...
Рейтинг: 0 / 0
18.12.2006, 18:28
    #34208524
Насколько можно доверять уникальности такой штуки
Jelisдумаю проблемм быть не должно, тем более, если на поле guid в базе поставить unique то максимум вылетит ошибка о нарушение уникальности раз в Нцать миллионов генераций.

Спасибо. Тогда пока что заюзаю такой вариант, если какие-то траблы попрут - тогда уже подключу С-шную либу.
...
Рейтинг: 0 / 0
18.12.2006, 18:30
    #34208527
Насколько можно доверять уникальности такой штуки
JelisМмм.... на сколько я понимаю, мд5 ( как и любая другая хеш функция) не может в ПРИНЦИПЕ возвращать уникальное значение. Так что теоретически, такое использовать нельзя

Влогонку: на 2^128+1 генерации и гуид _теоретически_ станет неуникальным ;)
...
Рейтинг: 0 / 0
18.12.2006, 20:07
    #34208757
Jelis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Насколько можно доверять уникальности такой штуки
Чайник в постгресе Jelisдумаю проблемм быть не должно, тем более, если на поле guid в базе поставить unique то максимум вылетит ошибка о нарушение уникальности раз в Нцать миллионов генераций.

Спасибо. Тогда пока что заюзаю такой вариант, если какие-то траблы попрут - тогда уже подключу С-шную либу.

А зачем вообще так сложно? Может хватит чегото типа seq || random ? И уникальный, и случайный.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Насколько можно доверять уникальности такой штуки / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]