Size: a a a

2021 June 22

YK

Yegor K in Modern::Perl
источник

a

allter in Modern::Perl
Я сейчас делаю (для внутреннего использования) токенизацию запроса, токен ? принимаю для чисел, ?? - для строк, после чего собираю последовательность токенов обратно, эскейпя строковые аргументы и валидируя числовые.
источник

YK

Yegor K in Modern::Perl
ну если так удобнее )
к тому же пачки данных всё равно удобнее вставлять через например
insert table (colN,...) format CSV
источник

a

allter in Modern::Perl
Мне не для вставлять, а что бы селектить (с разным набором ограничений)
источник

VK

Vyacheslav Koval in Modern::Perl
затык в производительности
когда делается связь двух таблиц в ОРМ, потом в коде получается такой код:
for (@resultset) {
  $table1->related_table2->name
}

А под капотом 600 или 1000 простых запросов select name from table where id = ?
Тогда начинаются мозги включаться и смотреться, что под капотом у ОРМ
источник

a

allter in Modern::Perl
Это просто для информации о том, как числа парсятся кликхаусом, или я что-то упустил?

В чём сложность эскейпинга - в том, что надо как раз отслеживать, надо эскейпить то или иное значение, или нет. Очень легко забыть. С отдельными токенами, типа ? и ?? немного проще в этом плане. Но с одной стороны приходится велосипедить токенизатор, так что я удивлён, что до сих пор ничего не сделали. А с другой стороны, всё же неудобно иметь разные токены для числовых и строковых подстановок. :(
источник

YK

Yegor K in Modern::Perl
понятно, иногда сподручно заюзать sql::abstract:
say SQL::Abstract->new(qw/case lower/)->where({ id => { '>', \1 }, uid => {'=', \q('whatever')} });
источник

YK

Yegor K in Modern::Perl
> Это просто для информации о том, как числа парсятся кликхаусом, или я что-то упустил?
да, всё так )
источник

a

allter in Modern::Perl
Про SQL::Abstract интересная идея
источник

YK

Yegor K in Modern::Perl
и читать схему из https://clickhouse.tech/docs/en/operations/system-tables/columns/#system-columns если например нужно юзеру сообщить, что вот тут должно быть число, а тут строка и тп
источник

a

allter in Modern::Perl
прикольная штука, по идее с ней можно даже DBI-интерфейс сделать, было бы желание...
источник

a

allter in Modern::Perl
А нет, для этого потребовалось бы парсить запрос и определять все таблицы-источники.
источник
2021 June 23

W

Warstone in Modern::Perl
warstone@dev:~$ perl -d test.pl

Loading DB routines from perl5db.pl version 1.60
Editor support available.

Enter h or 'h h' for help, or 'man perldebug' for more help.

main::(test.pl:2):      print "1\n";
                                                                                                                                                                                                                                                                                                                              DB<1> v
Undefined subroutine &DB::cmd_l called at /usr/local/perl5.34.0/lib/5.34.0/perl5db.pl line 6034.
at /usr/local/perl5.34.0/lib/5.34.0/perl5db.pl line 6034.
       DB::cmd_v("v", "", 2) called at /usr/local/perl5.34.0/lib/5.34.0/perl5db.pl line 4798
       DB::cmd_wrapper("v", "", 2) called at /usr/local/perl5.34.0/lib/5.34.0/perl5db.pl line 4311
       DB::Obj::_handle_cmd_wrapper_commands(DB::Obj=HASH(0x558a60b0e0b8)) called at /usr/local/perl5.34.0/lib/5.34.0/perl5db.pl line 3200
       DB::DB called at test.pl line 2
Debugged program terminated.  Use q to quit or R to restart,
use o inhibit_exit to avoid stopping after program termination,
h q, h R or h o to get additional info.
                                                                                                                                                                                                                                                                                                                              DB<1> q
warstone@dev:~$ perl -v

This is perl 5, version 34, subversion 0 (v5.34.0) built for x86_64-linux

https://github.com/Perl/perl5/pull/18900

FYI
источник

DF

Denis F in Modern::Perl
источник

MG

Mr. Good in Modern::Perl
Гуру, подскажите, если я использую только UniEvent::HTTP, по идее мне вообще никакие больше веб серверы не нужны? Или ставить что-то для статики? Или при старте скрипта прочитать всю статику в память и роутить её UniEvent::HTTP в "память" ?
источник

b

basiliscos in Modern::Perl
ну, вопрос в том чтобы настроить это в nginx/apache за полчасика, или девелопить "статик-логику" самому с нуля... ну тоже, видимо, можно. Но ты не забывай, что UE::HTTP это ещё не фреймворк (планируется), так что придётся некоторые вещи писать самому (типа роутинг). Но если что-то своё/мелкое, то видимо, можно
источник

MG

Mr. Good in Modern::Perl
самому мне писать не привыкать:) Ну, то есть если я генерю HTML в Perl скрипте, роутинг написал сам, использую UE::HTTP, то другой сервер не нужен, HDD у меня вообще получается почти не задействован (только работа с БД например), и оно должно супер быстро работать, быстрее, чем с PSGI или с Nginx на фронте?
источник

b

basiliscos in Modern::Perl
да, по идее буде оч. шустро.
источник

MG

Mr. Good in Modern::Perl
если так, то это супер было бы, я бы легко и точно успешно перенёс бы старый говнокод функциональный на UE::HTTP
источник

MG

Mr. Good in Modern::Perl
спасибо
источник