Как стать автором
Обновить
0
0
RinNas @RinNas

IT

Отправить сообщение

PostgreSQL функции для обработки номера телефона

  1. phone_parse.sql -- разбирает номер телефона в международном формате E.164 или в локальном формате на составные части (country_code, area_code, local_number)

  2. phone_normalize.sql -- нормализует номер телефона, возвращает номер телефона в международном формате E.164, например: +79651234567

  3. phone_format.sql -- форматирует номер телефона по образцу

PostgreSQL домен (тип данных)

  • phone.sql -- phone number in the international format E.164

А где у MySQL массивы? )

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

Psql можно очень сильно адаптировать под себя через psqlrc: сделать цветное приглашение командной строки, прикрутить pspg для отображения и навигации (!) в табличных данных, можно "налепить" читабельных команд типа :databases, :tables, если короткие эквиваленты не нравятся.

Выравнивание в расширенном выводе почему-то не работает только у Вас )

Сервисом не пользуюсь. Все "наезды" очень поверхностные, никакой конкретики и примеров. Неконструктивно. Доверие к такому комментарию нулевое.

Шаг 4. Перенесли бизнес-логику в базы данных

Привет из 2024!
Поделитесь вашим опытом. Что в "бою" работает хорошо, а что не очень?
С каким "подводными камнями" и "узкими местами" вы столкнулись в PostgreSQL?
Бизнес-логика так и осталась в СУБД, или часть пришлось всё-таки вынести в приложение? Что именно и почему?

Как найти что-то в куче файлов postgresql-%Y-%m-%d_%H%M%S.log, если поискать нужно за последние сутки, т.к. точное время неизвестно?

В корпоративной среде не всегда возможно установить терминал, который нравится, из-за ограничений безопасности. Но улучшить внешний вид командной строки возможно, просто немного дополнив кодом файл ~/.bashrc.

Было бы интересено посмотреть на результаты сравния производительности Firebird 5 и PostgreSQL 15 ?

Много лет тому назад я подсмотрел очень интересную коцепцию SQL шаблонизатора с условными блоками у Дмитрия Котерова (dklab).

Потом сделал sql-template-engine, который уже несколько лет работает на одном крупном веб-сайте РФ.

Дополню: sudo apt install git-filter-repo

Спасибо за статью. Читал её ещё в 2018-м. С тех пор пор прошло много времени. У меня есть альтернативная реализация "многопоточки". Там немного bash для распараллеливания и одна хранимая процедура на PL/pgSQL, чтобы скрыть все сложности внутри.

Патч очень объемный

Возможно ли его разделить на части и внедрять в СУБД постепенно? Большого слона нужно есть по частям. Разделяй и влавствуй )

Хорошая статья. Для более эффективной работы сотрудникам действительно нужно уметь лучше коммуницировать друг с другом.

А темы, которые касаются или м.б. интересны всей команде (рабочей группе) нужно обсуждать в общих чатах вместо персональных чатов 1:1. Чтобы потом не копировать текст или не пересказывать другим до чего (не)договорились.

Англицизмы, как и просторечье, допустимо употреблять в устной речи. В письменной лучше такого избегать. В случае неоднозначности русского слова/фразы можно указать в скобках по-английски, например: фиксация (commit).

Спасибо переводчикам за труд!

Небольшая шпаргалка по особенностям сравнения record и NULL

Testing a ROW expression with IS NULL only reports TRUE if every single column is NULL. Нужно об этом знать, чтобы на напороться на ошибки в своём коде.

SELECT 
      (NULL, NULL) IS NULL as "(NULL, NULL) IS NULL", --true
      (NULL, NULL) IS NOT NULL as "(NULL, NULL) IS NOT NULL", --false
      NOT (NULL, NULL) IS NULL as "NOT (NULL, NULL) IS NULL", --false

      (1, NULL) IS NULL as "(1, NULL) IS NULL", --false
      (1, NULL) IS NOT NULL as "(1, NULL) IS NOT NULL", --false --!!!
      NOT (1, NULL) IS NULL as "NOT (1, NULL) IS NULL" --true --!!!

Для обновления или удаления миллионов записей в таблице БД под нагрузкой я сделал себе хранимую процедуру loop_execute(), спрятав все "сложности" внутри. Взял идеи из статьи и развил дальше. Модификация записей происходит пачками в отдельных транзакциях с контролируемым временем блокировки. Для удобства есть режим тестирования, отображение прогресса выполнения в процентах и приблизительного времени окончания работы! На многоядерных серверах распараллеливание в разы увеличивает скорость работы.

к pg_try_advisory_lock('queue_table'::regclass::oid нужно дописать ::int, иначе будет ошибка

Где можно скачать презентацию доклада Инты, массивы, внешние ключи, наследование (Иван Панченко)?

1

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность