Size: a a a

2021 July 10

AR

Anton Revyako in ctodailychat
он там следующим шагом делает правильно (если бы не join on true) и показывает какое это фу...

просто предъявы странные.

ну это как питонистам норм, что дефолты в функциях у них с состоянием, а мне, как тому, кто снаружи смотрит, это что-то вообще не ок )
источник

A

Alex in ctodailychat
create table developers
create table other_stupid_rednecks
источник

AR

Anton Revyako in ctodailychat
-- can't name this value
> select x2 from foo group by x+1 as x2;
ERROR:  syntax error at or near "as"
LINE 1: select x2 from foo group by x+1 as x2;


нормальный человек?
источник

C

Constantine in ctodailychat
кайф же
источник

С

Слава in ctodailychat
Тут в соседнем чате человек писал адаптер из odata в монгу
Так монга некоторые запросы вообще не переваривала
источник

AR

Anton Revyako in ctodailychat
-- this magically works, even though x is not in scope in the select
> select (x + 1)*2 from foo group by x+1;
?column?
----------
(0 rows)

-- but this doesn't, because it isn't the same parse tree
> select (x +1)*2 from foo group by x+1;
ERROR:  column "foo.x" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select (x +1)*2 from foo group by x+1;


Это не потому что другой AST. Точнее, может и по этому, но это не просто так.

Просто человек не знает, что оператор умножения можно переопределить и тогда результат вычисления (x +1) от (x +1)*2 может отличаться совсем не в 2 раза...
источник

AR

Anton Revyako in ctodailychat
определи сначала, потом используй.

select x+1 as x2 from foo group by x2
источник

AR

Anton Revyako in ctodailychat
но он показывает как отвратительно приходится выкручиваться

select x2 from (select x+1 as x2 from foo) group by x2
источник

AR

Anton Revyako in ctodailychat
Единственное, что верно, так это то, что баз много, SQL'и разные, и это давно не 1 язык.
Они разные, как яблоки на яблоне. Вроде все яблоки, вроде все одинакового цвета, но не все одинаковые :)

Большая проблема, как мне кажется, в разном поведении, но это больше претензии, наверное, к рантайму, а не языку.

Например, такое
select x+1 as x2, x2+1 from foo

прокатит в clickhouse и snowflake, но не прокатит в mysql и pg

Или вот оказалось, что select fn(*) from foo в snowflake для неагрегатных функций, разворачивает * в список полей. т.е. select fn(x) from foo.
источник

С

Слава in ctodailychat
Кликхаус это же вообще не база общего назначения
источник

AR

Anton Revyako in ctodailychat
Так не про рантаймы ж разговор, а про язык
источник

AR

Anton Revyako in ctodailychat
в статье
источник

AR

Anton Revyako in ctodailychat
Но я говорю, что рантаймы разные, поведение разное и это иногда может быть проблемой. но не такой серьезной, чтоб париться по этому поводу
источник

С

Слава in ctodailychat
Так если в некоем рантайме взяли и сделали корявый sql, то это не проблема sql, а рантайма
источник

AR

Anton Revyako in ctodailychat
полностью согласен
источник

С

Слава in ctodailychat
По этой же самой причине Оракл (а до того Sun) бьёт всех по голове за самодеятельность в Java. Чтобы не портили репутацию языку
источник

AR

Anton Revyako in ctodailychat
ну да, конечно, именно по этой причине )
источник

IV

Igor V in ctodailychat
Ну а как ещё? Все так делают
источник

AS

Alexey Shcherbak in ctodailychat
>Просто человек не знает, что оператор умножения можно переопределить и тогда результат вычисления (x +1) от (x +1)*2 может отличаться совсем не в 2 раза...

Вы хотите сказать что можно сделать так что 2*2 будет не 4???

Вот после этого наезды со стороны sql на фичи других языков вообще теряют все основания...
источник

AR

Anton Revyako in ctodailychat
в посгре можно перезагрузить любой оператор
источник