Size: a a a

pgsql – PostgreSQL

2020 August 13

YS

Yaroslav Schekin in pgsql – PostgreSQL
A
Всем привет! Как в логах включить отображение уведомлений о недостаточных привилегиях? То есть пользователь пытается выполнить операцию, нет достаточных привилегий, я бы хотел видеть это уведомление в логах. Как его включить?
Так это же обычная ошибка, нет?
Т.е. управляется log_min_error_statement и т.п.
источник

A

A in pgsql – PostgreSQL
Yaroslav Schekin
Так это же обычная ошибка, нет?
Т.е. управляется log_min_error_statement и т.п.
Ошибки запросов вижу, а когда пытаюсь выбрать из таблицы без достаточных привилегий, запись в логи не падает.
источник

A

A in pgsql – PostgreSQL
Yaroslav Schekin
Так это же обычная ошибка, нет?
Т.е. управляется log_min_error_statement и т.п.
Это я понимаю. На каких уровнях ошибки такого рода туда попадают?
источник

A

A in pgsql – PostgreSQL
A
Это я понимаю. На каких уровнях ошибки такого рода туда попадают?
В манах, вообще нет упоминаний о permissions...
источник

A

A in pgsql – PostgreSQL
A
В манах, вообще нет упоминаний о permissions...
Хотя может эти ошибки как-то иначе называются?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
A
Ошибки запросов вижу, а когда пытаюсь выбрать из таблицы без достаточных привилегий, запись в логи не падает.
У меня попадает (при log_min_error_statement=error), только что проверил на тестовой базе.
Т.е. я вижу в логе:
2020-08-13 10:13:17.455 MSK [13097] yaroslav@test_irc ERROR:  permission denied for table student
2020-08-13 10:13:17.455 MSK [13097] yaroslav@test_irc STATEMENT:  SELECT * FROM student;
источник

A

A in pgsql – PostgreSQL
Yaroslav Schekin
У меня попадает (при log_min_error_statement=error), только что проверил на тестовой базе.
Т.е. я вижу в логе:
2020-08-13 10:13:17.455 MSK [13097] yaroslav@test_irc ERROR:  permission denied for table student
2020-08-13 10:13:17.455 MSK [13097] yaroslav@test_irc STATEMENT:  SELECT * FROM student;
Спасибо, сейчас перепроверю.
источник

A

A in pgsql – PostgreSQL
A
Спасибо, сейчас перепроверю.
Извиняюсь. Все отлично работает, логи падают. Проблема была в том, что я во вчерашнем логе смотрел текущие сообщения.
источник

MP

Maxim Presnyakov in pgsql – PostgreSQL
Добрый день!
Кто-нибудь может подсказать, как определить, подходящая ли версия постгреса стоит на машинке для 1с?
источник

MP

Maxim Presnyakov in pgsql – PostgreSQL
вернее даже переформулирую — постгрес про стандарт что пишет в ответ на select version(); ?
PostgreSQL 11.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit
источник

M

Murena in pgsql – PostgreSQL
Всем привет плиз подскажите - как с подзапроса поднять вложеность на уровень выше а именно - есть такое подзапрос -

(SELECT position FROM (SELECT *, row_number() over( order by "voiceCount" DESC ) as position FROM song WHERE "eventId" = song."eventId" ) song WHERE "id" = song."id") AS ratingPosition

он возвращает результат как вложеность position: 45 - а как мне можно эту вложеность поднять на уровень выше - чтоб сразу числовой результат присваивался ratingPosition а не вложеность ?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Murena
Всем привет плиз подскажите - как с подзапроса поднять вложеность на уровень выше а именно - есть такое подзапрос -

(SELECT position FROM (SELECT *, row_number() over( order by "voiceCount" DESC ) as position FROM song WHERE "eventId" = song."eventId" ) song WHERE "id" = song."id") AS ratingPosition

он возвращает результат как вложеность position: 45 - а как мне можно эту вложеность поднять на уровень выше - чтоб сразу числовой результат присваивался ratingPosition а не вложеность ?
Я например, не понял вопроса. :(
Может, стоит полный запрос показать или как-то иначе объяснить?
источник

DG

Dimitri Grinkevich in pgsql – PostgreSQL
Murena
Всем привет плиз подскажите - как с подзапроса поднять вложеность на уровень выше а именно - есть такое подзапрос -

(SELECT position FROM (SELECT *, row_number() over( order by "voiceCount" DESC ) as position FROM song WHERE "eventId" = song."eventId" ) song WHERE "id" = song."id") AS ratingPosition

он возвращает результат как вложеность position: 45 - а как мне можно эту вложеность поднять на уровень выше - чтоб сразу числовой результат присваивался ratingPosition а не вложеность ?
rtfm rank, row_number
источник

M

Murena in pgsql – PostgreSQL
Yaroslav Schekin
Я например, не понял вопроса. :(
Может, стоит полный запрос показать или как-то иначе объяснить?
вот полный запрос

SELECT song.id, song."userId", song."eventId",
song."songSinger", song."songName", song."coverSinger",
song."voiceCount", song."additionalTextInfo", song."youtubeVideoId", song."createdAt", song."updatedAt",
json_build_object( 'username', u1."username" ) AS "user",
(SELECT COUNT(*) FROM like_dislike WHERE like_dislike."songLikeDislikeId" = song.id AND like_dislike."isLike" = true) AS likeCount,
(SELECT COUNT(*) FROM like_dislike WHERE like_dislike."songLikeDislikeId" = song.id AND like_dislike."isLike" = false) AS dislikeCount,
(SELECT position FROM (SELECT *, row_number() over( order by "voiceCount" DESC ) as position FROM song WHERE "eventId" = song."eventId" ) song WHERE "id" = song."id") AS ratingPosition
FROM song
LEFT JOIN "user" u1 ON song."userId" = u1.id
WHERE song."id" = 'f91a287c-06fe-4033-9312-9e094bc172dd'
GROUP BY song.id, u1."username"
источник

M

Murena in pgsql – PostgreSQL
суть подзапроса который AS ratingPosition - высчитать текущую позицию в рейтинге - он отрабатывает отдельно ок - но возвращает вложеность - и ругается когда все в одном запросе
more than one row returned by a subquery used as an expression
источник

M

Murena in pgsql – PostgreSQL
это довольно очевидно - потому что возвращается таблица - но как сделать так чтоб вернулось только цифровое значение с этого запроса - который AS ratingPosition - хз
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Murena
суть подзапроса который AS ratingPosition - высчитать текущую позицию в рейтинге - он отрабатывает отдельно ок - но возвращает вложеность - и ругается когда все в одном запросе
more than one row returned by a subquery used as an expression
А я уже стал удивляться, как это вообще может работать. ;)
Мне кажется, что в полном запросе не хватает квалификаций для этого подзапроса:
(
      SELECT position
        FROM (
             SELECT *, row_number() OVER (ORDER BY "voiceCount" DESC) AS position
               FROM song -- "внешняя" таблица называется так же
              WHERE "eventId" /* какой таблицы? */ = song."eventId"
             ) song
       WHERE "id" = song."id" -- то же самое
      ) AS ratingPosition
Даже не хочется думать, как там названия разрешаются — может, просто добавите (вдруг проблема только в этом)? ;)
А если нет — точно этот запрос для любого id всегда возвращает одну запись (мы-то \d таблицы (ключей) не видели)?
источник

CO

Chern Oleksander in pgsql – PostgreSQL
Всем привет, а чисто случайно не у кого нет Access базы "Библиотека" ?)) Знакомая пытается закончить учебу )) если что по специальности не работает и работать не будет
источник

M

Murena in pgsql – PostgreSQL
Yaroslav Schekin
А я уже стал удивляться, как это вообще может работать. ;)
Мне кажется, что в полном запросе не хватает квалификаций для этого подзапроса:
(
      SELECT position
        FROM (
             SELECT *, row_number() OVER (ORDER BY "voiceCount" DESC) AS position
               FROM song -- "внешняя" таблица называется так же
              WHERE "eventId" /* какой таблицы? */ = song."eventId"
             ) song
       WHERE "id" = song."id" -- то же самое
      ) AS ratingPosition
Даже не хочется думать, как там названия разрешаются — может, просто добавите (вдруг проблема только в этом)? ;)
А если нет — точно этот запрос для любого id всегда возвращает одну запись (мы-то \d таблицы (ключей) не видели)?
в том то и дело что это не работает ) эту строчку я выбросил без нее работает нормально ) недавно начал работать с SQL иду читать матчасть - видимо что то не так делаю =)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Murena
в том то и дело что это не работает ) эту строчку я выбросил без нее работает нормально ) недавно начал работать с SQL иду читать матчасть - видимо что то не так делаю =)
Т.е. после явного указаниях всех таблиц?
Можете показать "\d song", в таком случае?
источник