Страницы

7 августа 2012 г.

Дизайн блога. Нужны рекомендации...

Доброго времени суток Вам, уважаемые. :)
       Со временем, относительно разных вещей в жизни, приходит понимание, что надо что-то менять.

       Обратил внимание на дизайн своего блога. В последнее время мне все больше кажется, что что-то нужно изменить. Никак не могу до конца определить что не так. Может все слишком темно и мрачно? Может цвета подобраны не так? Может нужно еще что-то добавить или убрать? А может вобще все изменить? Вобщем я не могу определиться как улучшить внешний вид и читабельность блога...

Что бы Вы поменяли в этом блоге, чтобы Вам было приятнее его читать?

Заранее благодарен за советы. :)

2 августа 2012 г.

PostgreSQL. Логирование исключений. Часть 2. Реализация.

Hello World! :)

       В данном посте мне хотелось бы продолжить тему разработки логирования исключений для PostgreSQL. В предыдущем посте я обозначил требования и способы реализации. Сейчас я хочу приступить непосредственно к реализации.

       Как я и говорил, этим хранилищем будет являтсья таблица. В соответствии с описанием в предыдущем посте, я определил все необходимые мне поля. Получился следующий скрипт:



CREATE TABLE sys.exception_log
(
  id_exception_log bigserial NOT NULL, -- идентификатор записи
  exception_time timestamp without time zone NOT NULL, --время исключения
  exception_code character varying NOT NULL DEFAULT 0, --код исключения
  exception_message character varying NOT NULL, --сообщение
  exception_query text NOT NULL, --текст запроса возбудившего исключение
  exception_label character varying, --метка
  usr_name character varying NOT NULL, --пользователь запустивший запрос
  server_version character varying NOT NULL, --версия сервера PostgreSQL
  db_location character varying NOT NULL, -- локация сервера
  client_location character varying NOT NULL, --локация удаленного клиента
  CONSTRAINT pk_exception_log_id_exception_log PRIMARY KEY (id_exception_log)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE sys.exception_log OWNER TO postgres;


PostgreSQL. Логирование исключений. Часть 1. Требования, тесты, поиски вариантов.

       Добро пожаловать в "Будни программиста".
       Сегодня я хотел бы начать освящать вопрос логирования исключительных ситуаций происходящих во время выполнения хранимых процедур. Не буду говорить о пользе такого функционала, ибо, думаю, это и так понятно. Скажу только, что из-за отсутствия такого функционала вчера пришлось потратить более часа на локализацию исключения возникающего у клиента, и чуть более минуты на устранение причины исключения.

Что нужно от логирования?

  1. Доступное хранилище лога исключений;
  2. Добавление в лог новых записей при возникновении исключений любого типа;
  3. Возможность хранения кода и текстового сообщения исключения;
  4. Необходимо хранить данные для локализации. В идеале SQL-запрос который вызвал исключение (в т.ч. имя хранимки (породившей исключение) с указанными значениями параметров); 
  5. Способ разметки областей хранимой процедуры для более точной локализации возникновения исключений.

1 августа 2012 г.

PostgreSQL. Методы проверки результатов выполнения запроса

Доброго времени суток.
       Я относительно недавно начал пользоваться PostgreSQL, и каждый день приносит мне новые открытия, которые я хотел бы законспектировать.

       Итак, в PostgreSQL есть способы проанализировать результаты выполенения запросов на предмет наличия возвращаемых данных. Ранее, я делал что-то типа:

if not exists(select null from table where rec_id = record_id) then
 insert... ;
else
 update... ;
end if;

Этот способ бесспорно работает, но PostgreSQL предоставлет более изящные решения, например: 

PostgreSQL. Полезные запросы к системным таблицам

Доброго времени суток.
Создаю очередную памятку полезных запросов, к которым время от времени приходится обращаться. Возможно настолько редко, что без памятки не обойтись.
Запросы будут как самописные так и взятые из различны источников (во избежание изобретения велосипедов).

Пост будет постоянно расширяться.

Запросы под катом.