Вопросы по SQL и другие аспекты работы PostgreSQL

warning: Creating default object from empty value in /var/www/victor/web/pgdocs.ru/data/modules/taxonomy/taxonomy.pages.inc on line 33.
Здесь обсуждаются запросы на SQL в PostgreSQL. Оптимизация запросов, реализация, подходы и т.д.

Пересечение интервалов времени

1. Есть запись (дата+время) это начало процесса и есть (Дата+время) окончание процесса, те получили от А до Б.
2. Добавляем 2 запись тоже (дата+время)-А и (дата+время)-Б
Вопрос как можно проверить пересечение интервалов времени?

Как создать UUID колонку с автоматически генерируемых данных

Всем привет.
Я создал таблицу с UUID колонку и мне нужно чтобы когда я делаю новая записи в таблицу, это колонка автоматически заполнялось данными...

Не выполняется команда

Здравствуйте.

У меня почему при создании БД не выполняется следующая команда:
CREATE TYPE dtype AS ENUM ('LOCAL', 'VIRTUAL', 'RELAY');
пишет вот что:
ERROR:  ошибка синтаксиса в или рядом "ENUM" at character 22
Версия POSTRESQL 8.1.11

Закрасить результат запроса

Ребята , вот возник вопрос. Сегодня слышал, что можно каким-то образом при выполнении запроса, закрашивать нужные строчки в таблице цветом. Так во общем вопрос это правда или нет?

Создание своей агрегатной функции

Здравствуйте, перевожу сайт с MySQL на PostgreSQL.

Вопрос в следующем как создать свою агрегатную фунцию типа MAX, AVG и т.д?

Ну вот например чтобы она действовала таким образом:

SELECT T3."pg_id", T3."name", COUNT(*) AS "cnt", AGR_FUNC(T1."wrd") AS "param"
FROM "tab1" T1
  JOIN "tab2" T2 ON T2."wrd_id"=T1."wrd_id"
  JOIN "tad3" T3 ON T3."pg_id"=T2."pg_id"
WHERE T1."wrd"
GROUP BY T3."pg_id", T3."name",
ORDER BY "cnt" DESC
LIMIT 10

Нужно обработать каждый элемент T1."wrd" в функции AGR_FUNC и выдать один итоговый результат.

Удаляются функции во время работы

Стояла постгри 8.3.7 теперь 8.4.1. Работаю в винде с NetBeans 6.7.1.
Возникает одна и таже проблема, во время работы с постгри какая-либо функция может удалится или спутаться именем с другой функцией сама собой (аргументы теже оставались, имя уже другое). Мне показалось это происходит когда я добавляю новую функцию (на данный момент у меня их 47).
Раньше с вирусами проблемы были а сейчас незнаю на што думать, после переустановки винды поставил nod 32 4 версия...XP более менее обновляю, не замечаю штобы вирусы мешали жить.

Проблема при работе с PostgreSQL из Trace Mode

Установил и настроил PostgreSQL версию 8.4.1, драйвер ODBC для нее.
Далее пишется программа в СКАДА системе Trace Mode 6, которая поддерживает работу с базами данных через драйвер ODBC. Данные получаемые с объекта должны записываться в таблицы базы данных в свои временные отрезки.
Этим командует СКАДА, составляются простые запросы типа INSERT:
INSERT INTO Temperature
(
DateAndTime,
Tk1,
Tk2,
Tk3
)
VALUES
(
'#ARG_000#',
'#ARG_001#',
'#ARG_002#',
'#ARG_003#'
)

'#ARG_000#'...'#ARG_003#' - это данные, которые в реальном времени заменяются на числа и даты.

C function, dll, падает сервер

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

#include "postgres.h"
#include "fmgr.h"
 
#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif
 
PG_FUNCTION_INFO_V1(add_one);
 
__declspec (dllexport) Datum add_one(PG_FUNCTION_ARGS)
{
    int32   arg = PG_GETARG_INT32(0);
 
    PG_RETURN_INT32(arg + 1);
}
 
PG_FUNCTION_INFO_V1(fo);
 
__declspec (dllexport) Datum fo(PG_FUNCTION_ARGS)
{
    float8   arg = PG_GETARG_FLOAT8(0);
 
    PG_RETURN_FLOAT8(arg+1);
}

Порядок выдачи regexp_split_to_table

Делаю функцию, возвращающую слова из входной строки, разделённые за счёт regexp_split_to_table.
Для анализа входной строки мне важен порядок слов.
Выполняю запрос:

        SELECT DISTINCT
            rstt
        FROM
            regexp_split_to_table(
                 'САХАР Д/КОШКИ, СОБАКИ', E'[^A-Za-zА-Яа-яЁё0-9/]+'
            ) rstt
        WHERE
            rstt IS NOT NULL AND
            char_length(rstt)>0 AND
            rstt ~ '[A-Za-zА-Яа-яЁё]'

Результат:

word	pos
Д/КОШКИ	1
САХАР	2
СОБАКИ	3

GIN FTS поиск по вхождению

Почитал документацию, погуглил, что-то не нашёл возможности поиска по вхождению для полнотекстового поиска.
Вроде:
SELECT to_tsvector('russian', 'автомобиль') @@ to_tsquery('russian', 'авто*')

Как по "авто*" найти "автомобиль", используя индекс GIN или GIS или ещё что?

Собранный материал

Back to top

(С) Виктор Вислобоков, 2008-2023