Задать вопрос
  • Как разблокировать колонки в postgresql?

    @galaxy
    Если _idrref уникальный, можно попробовать сделать его первичным ключом (через запрос
    alter table _reference31489 add primary key (_idrref)
  • Зачем нужны корневые сертификаты?

    @galaxy
    Вова,
    Или имелось в виду, что у майора есть доступ не только к сертификату, но и к приватному ключу, который к этому сертификату прилагается (что, кажется, позволяет как расшифровать траффик, так и сгенерировать новый серт для нужного сайта)?

    PKI (система публичных сертификатов) - структура иерархическая. Корневым сертификатом подписываются сертификаты крупных УЦ, дальше они ими могут подписать свои сертификаты второго уровня или сертификаты промежуточных УЦ. Цепочка может, в теории, быть очень длинной, и браузер обязан проверить подписи по иерархии вплоть до корневого.

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

    Василий Банников,
    смысл в том, что ГОСТ ты можешь поставить сам в добровольном (принудительном) порядке, чтобы, к примеру, пользоваться госуслугами или nalog.ru.
    кстати, практически нигде в РФ этого реально не видел. Для физлиц все госсайты и банки имеют обычные ssl сертификаты (может понадобиться свой личный сертификат ЭП, но он никак не связан с установкой корневого в систему).
    Единственное, где я встречал такое - на сайте Минпромторга для оформления лицензий (non-tariff.gov.ru)
  • Как сделать правильный комплексный индекс?

    @galaxy
    Akina,
    Если PostgreSQL не умеет использовать покрывающий индекс, то объясни мне, почему удаление поля из индекса (fiddle) изменяет план и вместо Index Only Scan using idx1 on test пишет Index Scan using idx1 on test. Что сервер подразумевает в первом случае, когда добавляет слово Only?

    формально их нет, это принципиальное ограничение архитектуры постгреса, где в индексах не хранится информация о транзакционной видимости.
    Но есть костыль, достаточно неплохой
  • Как сделать правильный комплексный индекс?

    @galaxy
    select * from table1 where n_flag=0 and num_status>=10 order by update_date asc limit 1;

    план покажите

    В любом случае, сделайте ANALYZE на теблицу
  • Почему парсит не понятный текст?

    @galaxy
    response = requests.get(url=url, data=data)
    почему заголовки суются в data? для get() data вообще смысла не имеет - response = requests.get(url=url, headers=data)
    заголовки, начинающие с двоеточия (это и не заголовки так-то), бесполезны, т.к. requests не умеет в http2
  • Как выбрать одним запросом Тип, Бренд и Название товара из указанной схемы БД?

    @galaxy
    Дмитрий Рогов,
    Select app_type.name, app_brand.name, app_product.name
    FROM app_product
    LEFT JOIN app_type_product ON (app_type_product.product_id = app_product.id)
    LEFT JOIN app_type ON (app_type_product.type_id = app_type.id)
    LEFT JOIN app_brand_product ON (app_brand_product.product_id = app_product.id)
    LEFT JOIN app_brand ON (app_brand_product.brand_id = app_brand.id)

    подойдет?
  • Curl_multi_init где ошибка?

    @galaxy
    FRATEREH, код и ошибку показывайте
  • Как выбрать одним запросом Тип, Бренд и Название товара из указанной схемы БД?

    @galaxy
    Вообще-то схема БД идиотская: почему связи device-brand и device-type много-ко-многим? Неужели у одного девайсе одновременно может быть несколько типов и брендов?
  • Curl_multi_init где ошибка?

    @galaxy
    FRATEREH,

    curl_multi_remove_handle($mh, $ch1);
    ...
    $response1 = curl_multi_getcontent($ch_1);
  • Curl_multi_init где ошибка?

    @galaxy
    FRATEREH, да
    $response = curl_multi_getcontent($ch1);
    $data = json_decode($response, true, 999, JSON_THROW_ON_ERROR);
    var_dump($response);
    
    $response = curl_multi_getcontent($ch2);
    $data = json_decode($response, true, 999, JSON_THROW_ON_ERROR);
    var_dump($response);
  • Оператор LIKE для поиска символов?

    @galaxy
    Михаил Ксенофонтов, SELECT * FROM test_table WHERE high ~ '[^0-9]';
    выберет все, где не только цифры
  • Как правильно делать upsert в SQLAlchemy?

    @galaxy
    Jolt,
    я хочу просто сделать upsert, это довольно популярная операция в базах данных, поэтому мне кажется что в алхимии это должно как-то делаться более простым путем чем через разные диалекты

    Не особо популярная, и не стандартизированная. Сравнить тот же mysql и postgres:
    * синтаксис разный (ну бог с ним, адаптация синтаксиса - проблема ORM)
    * семантика разная: postgres позволяет указать колонку или индекс, в которой возникает нарушение уникальности, а mysql - нет (и черт его знает, как он себя поведет). А в oracle и вовсе нет такого синтаксиса (зато есть MERGE)
  • Как правильно обеспечить уникальность записей в тиблице?

    @galaxy
    rooooraaaaa, ну как бы в любом случае сначала нужен id bigint auto_increment. Без этого у вас так или иначе когда-то в обозримом будущем возникнут проблемы.
    А вообще странно, какой у вас паттерн работы? Почему у вас в основном INSERT? Там действительно в основном новые данные (с новыми tuple_first, tuple_second) или это такой способ делать UPDATE?
    Если данные чаще новые, то ключ в любом случае будет расти. Если чаще срабатывает on duplicate key update, и вас заботит рост значения в auto_increment (непонятно, почему - это ни на что в общем не влияет), то делайте сначала обычный UPDATE, а затем, если affected rows = 0, уже insert ... on duplicate key update.

    В целом, мой совет все же такой: поменять тип поля id на bigint и не париться.
  • Я наследуюсь от двух классов и через метод super() пытаюсь из проинициализировать, но выдает ошибку. Почему?

    @galaxy
    nishe, посмотрите, там по ссылке есть объяснение, как формируется mro.
    Очень грубо: при множественном наследовании - в порядке, как перечислены непосредственные родители, и дальше вверх по иерархии.

    Вообще, конечно, писать явно super(SomeParent, self).__init__() - не есть хорошая практика и это не сильно лучше, чем SomeParent.__init__(self). В идеале каждый класс в цепочке должен вызывать просто super().__init__()

    Ваш пример можно питонизировать, например, так:
    class A:
        def __init__(self, value, **kw):
            print("A::__init__")
            self.value = value
            super().__init__(**kw)
    
    
    class B:
        def __init__(self, name, **kw):
            print("B::__init__")
            self.name = name
            super().__init__(**kw)
    
    
    class C(A, B):
        def __init__(self, **kw):
            super().__init__(**kw)
    
    
    t = C(name='Name', value=0)
  • Кто чем платит на зарубежных сервисах? DigitalOcean?

    @galaxy
    Станислав Макаров, мда... в банке пару недель назад нае ввели в заблуждение, получается. То ли тупицы, то ли валюту экономят таким образом...
  • Кто чем платит на зарубежных сервисах? DigitalOcean?

    @galaxy
    В Hetzner нормально приходят банковские переводы
    правда, только от организаций. Физлицам вообще нельзя валюту за рубеж переводить (кроме как родственникам)
  • Как узнать ip пользователя?

    @galaxy
    newaitix, вы можете проверить эту теорию (в моем комментарии выше): уберите ваш сервер с php за cloudflare (это бесплатно, настраивается за 5 минут) и проверьте REMOTE_ADDR и HTTP_CF_CONNECTING_IP
  • Как отсортировать строки в postgresql?

    @galaxy
    First Second, если у нее есть какой-то some_id, то можно и так:
    SELECT ...
    FROM bot_users 
    WHERE premium=true and id_kucoin_s is not null
    ORDER BY CASE WHEN some_id = XXX THEN 0 ELSE 1 END, take_profit_kucoin_s DESC;
  • Как узнать ip пользователя?

    @galaxy
    newaitix, ну что ж, значит ваш warp пускает в этом случае трафик напрямую или светит ваш адрес через те или иные заголовки. Лишний повод призадуматься.
    Я вот включил нормальный VPN и все ваши сервисы показали выходной адрес VPN.

    Есть вот такие сведения (не разбирался насколько это официально):
    The VPN encrypts all traffic and sends it to CF before it is sent to the intended website instead of sending it directly to the intended website.

    The only difference compared to other VPNs (other than using a newer and faster protocol) is that it will show your real IP address to any website currently using Cloudflare’s main services

    https://community.cloudflare.com/t/does-warp-hide-...
  • Как правильно составить SQL запрос SELECT PDO PHP для получения данных по двум строкам?

    @galaxy
    Да нет, выше же дали ссылку.
    SELECT * FROM `table_products`
     WHERE (:product_type IS NULL OR `product_type` = :product_type)
       AND (:product_group IS NULL OR `product_group` = :product_group)

    в привязанные переменные надо класть null, если соотв параметр пустой