Шифрование и секретность в Linux

         

Правильное использование временных меток



Листинг 11.10. Правильное использование временных меток

CREATE FUNCTION add_shipment (integer, text) RETURNS timestamp AS '

DECLARE

-- Объявление псевдонимов для аргументов функции,

customerjd ALIAS FOR $1:

isbn ALIAS FOR $2;

-- Объявление переменных для хранения кода поставки и текущего времени.

shipment_1d integer;

rightjiow timestamp;

BEGIN

-- Присвоить переменной текущего времени строку ''now'

right_now := ''now'':

-- Упорядочить существующие поставки по убыванию кодов

-- и присвоить первый код переменной shipment_id.



SELECT INTO shlpmentjd id FROM shipments ORDER BY id DESC:

-- Увеличить переменную shipment_id на 1.

shipment_id := shipment_id + 1:

-- Вставить запись в таблицу shipments.

-- Переменная rightjiow преобразуется к временной пометке на стадии

-- выполнения программы, вследствие чего константное значение now

-- интерпретируется заново при каждом вызове функции.

INSERT INTO shipments VALUES ( shipmentjd. customeMd. isbn. rightjnow ):

-- Вернуть временную пометку, используя константу now.

RETURN rightjiow:

END:

' LANGUAGE 'plpgsql';



Содержание раздела