Вопросы по 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. Оптимизация запросов, реализация, подходы и т.д.

Построение таблиц «Один-к-разным»

Изображение rean1mator

Здравствуйте!
Пытаюсь создать себе базу для учета комп.техники. Для каждого типа техники (системники, мониторы, печатная техника и тд) создал отдельную таблицу (справочник), так как у каждого типа техники есть уникальные технические характеристики, по которым я хочу в дальнейшем искать технику. Например, нужно найти мониторы с диагональю 22дюйма, или найти системники с процессорами x64 или только х86.

помогите новичку установить патчи для 1С

Добрый день. Имеются все необходимые материалы для сборки версии СУБД PostgreSQL, поддерживаемой 1С:Предприятием 8.3 Подкажите, пожалуйста, как устанавливаются дополнительные патчи? Postgre установлен на Windows 2008 64.

функция на с

Есть функция на с, написанная для 7.4.1. На 8 и 9 postgres не работает.
Ошибки:
structure has no member named 'vl_len'
too many arguments to function CreateTemplateTupleDesc
too many arguments to function TupleDescInitEntry
Помогите откомпилить эту функцию под новым postgres!!!

Пользовательская функция на C. Проблема с PG_MODULE_MAGIC

PostgreSQL 9.3 или 9.4. Создаю DLL-библиотеку (if_dll.dll) с пользовательской функцией на С (в MS Visual Studio 2010). При попытке CREATE функцию в PostgreSQL получаю "ОШИБКА: несовместимая библиотека "C:/Program Files/PostgreSQL/9.4/lib/if_dll.dll": нет отличительного блока" хотя в тело библиотеки включен PG_MODULE_MAGIC. Исходный текст ниже. В чем проблема ?
#include "stdafx.h"
#include "if_dll.h"
#include "postgres.h"
#include "fmgr.h"
#include "libintl.h"

#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif

#if defined(_WIN32)
#define DLLEXPORT __declspec(dllexport)
#else

Можно ли вызвать из Oracle через dblink функцию в PostgreSQL

Здравствуйте
Создал в Oracle dblink к PostgreSQL. Select к таблицам выполняются.
Написал в PostgreSQL функцию

CREATE OR REPLACE FUNCTION paybase_schema.test123 (v_input integer) RETURNS smallint AS
$body$
DECLARE
BEGIN
  RETURN v_input;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;

Попробовал вызвать ее в Oracle через dblink
SELECT "paybase_schema"."test123"@pgsql(1) FROM dual
получаю ошибку ORA-00904: "paybase_schema"."test123": недопустимый идентификатор

Почему?

Oracle 11.2.0.3 PostgreSQL 9.3

Запрос с подзапросом.

Есть БД с одной таблицой. В таблице этой находятся габариты тела (высота/длина/ширина). Я провожу поиск по этой таблице вот таким способом: (не обращайте внимания на то в каком виде код, просто запрос этот используется в приложении WinForms с использование библиотеки Npgsql)

sql = "SELECT * FROM parts WHERE 
height>" + minH + " AND height<" + maxH + " 
AND length>" + minL + " AND length<" + maxL + "
 AND width>" + minW + " AND width<" + maxW + ";";

вот описание переменных в этом запросе.
 

Что в plpgsql быстрее возводит в степень: x^y или power(x,y)?

Пытаюсь разбираться с созданием триггерных функций. Скорость их работы важна. В документации описаны оба способа. Поэтому вопрос:
Что в языке plpgsql быстрее возводит в степень: x^y или power(x,y)?
Подскажите, кто в курсе.

Замена пары символов в текстовом поле

Приветствую

Возникла задача поменять в таблице префикс номера телефона, то есть был 8914*, нужно чтобы был +7914* Делаю запрос

UPDATE TABLE SET phone = REPLACE(phone, '89%', '+79%')

Он отрабатывает без ошибок, но данные в таблице не меняются.

Что я еще не доделал?

pg_restore и эксклюзивные блокировки

Доброго времени суток всем. Недавно озадачился вопросом восстановления бд через pg_restore с использованием мультипоточности (флаг -j).
Verbose-вывод процеса pg_restore ошибок не содержит, результат выполнения - положительный. Тем не менее в логе постреса появляются записи:

2015-01-22 12:33:31 YEKT [10372]: [2-1] user=postgres,db=maindb_dev DETAIL: Process 10372 waits for AccessExclusiveLock on relation 1987967 of database 1983954.
2015-01-22 12:33:31 YEKT [10372]: [3-1] user=postgres,db=maindb_dev STATEMENT: ALTER TABLE ONLY t_changelog

S.O.S.

Приветствую всех!
У меня были две одинаковые по структуре базы, но разные по содержанию.
Только что по ошибке восстановил(переписал) одну из архива другого.
Т.е. для базы А была создана резервная копия с помощью pgAdmin-а, файл A.backup.

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

Back to top

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