Всё больше и больше уважаю PostgreSQL. Там много весёлого, зато отсутствует игра в чистую математику. В отличие от Крутой База Данных одной Большой Фирмы.
В пятницу коллега показал очередной шедевр.
Есть условие, скажем,
Оно точно-точно выполняется с математической точки зрения, но SELECT выдаёт пустую таблицу. То есть, A,B и C - правильные, а на выходе ничего.
Что надо сделать, чтобы исправить ситуацию?
Правильно. Нужно просто добавить пустоты.
прекрасно работает и выдаёт всё, что нужно.
Какие, нафиг, монады-шмонады. Чистый дзен.
В пятницу коллега показал очередной шедевр.
Есть условие, скажем,
WHEREA * 100000 + B = C
Оно точно-точно выполняется с математической точки зрения, но SELECT выдаёт пустую таблицу. То есть, A,B и C - правильные, а на выходе ничего.
Что надо сделать, чтобы исправить ситуацию?
Правильно. Нужно просто добавить пустоты.
WHEREA * 100000 + B + 0 = C
прекрасно работает и выдаёт всё, что нужно.
Какие, нафиг, монады-шмонады. Чистый дзен.
no subject
Date: 2014-12-22 12:59 pm (UTC)no subject
Date: 2014-12-22 01:13 pm (UTC)no subject
Date: 2014-12-22 01:16 pm (UTC)Там до сих пор нет типов "целое", "вещественное".
no subject
Date: 2014-12-22 01:51 pm (UTC)no subject
Date: 2014-12-22 01:54 pm (UTC)no subject
Date: 2014-12-22 01:57 pm (UTC)no subject
Date: 2014-12-22 02:15 pm (UTC)Вместо этого там пилят C++/Java с использованием элементов ФП.
Это как ехать в трамвае и утверждать о том, что автобусы-то на самом деле плохие, никуда на них не уедешь.
no subject
Date: 2014-12-22 02:29 pm (UTC)no subject
Date: 2014-12-22 02:38 pm (UTC)Ну, честно говоря, PostgreSQL смотрит на неё и вбирает в себя передовые фичи Оракла.. Взять те же материализованные представления, которые впервые появились у задающих тренд..
Однако там появляются, помимо прочего, очень интересные фичи, которых у монстра нет.
Взять ту же работу с JSON против работы с избыточным транскорпоративным недолиспом под названием XML.
Upd. И потом: Oracle - в офисе, PostgreSQL - дома.
no subject
Date: 2014-12-22 02:45 pm (UTC)no subject
Date: 2014-12-22 07:53 pm (UTC)no subject
Date: 2014-12-22 08:07 pm (UTC)no subject
Date: 2014-12-22 01:32 pm (UTC)no subject
Date: 2014-12-22 01:53 pm (UTC)Потому что при одном наборе A,B,C всё работает, а при другом - прекращает.
no subject
Date: 2014-12-22 06:21 pm (UTC)no subject
Date: 2014-12-22 06:28 pm (UTC)Вторым, там ничего после запятой нет. Правда, если добавить в число с нулями десятичный нуль, тоже всё начинает работать.
Короче, совсем наоборот к той идее, которая приходит в голову.
no subject
Date: 2014-12-22 08:01 pm (UTC)Разрядная сетка мантиссы-то не переполняется?
Но в-общем - неча пенять на СУБД коли нет понимания работы с плавающими числами.
no subject
Date: 2014-12-22 08:11 pm (UTC)Ну что за люди. Почему предполагается, что я в чём-то не разбираюсь? Если сказано баг, значит все возможные варианты проверили.
Разрядная сетка мантиссы-то не переполняется?
Она не может переполняться. Тем более, там всё целочисленное. Но даже для вещественного не могла бы при таких значениях.
no subject
Date: 2014-12-22 01:56 pm (UTC)no subject
Date: 2014-12-22 01:58 pm (UTC)no subject
Date: 2014-12-22 02:01 pm (UTC)no subject
Date: 2014-12-22 02:03 pm (UTC)no subject
Date: 2014-12-22 02:05 pm (UTC)no subject
Date: 2014-12-22 02:58 pm (UTC)Но вообще, конечно, прекрасно.
no subject
Date: 2014-12-22 03:29 pm (UTC)Это большая серьёзная база данных. На ней Big Data бегает.
no subject
Date: 2014-12-22 03:31 pm (UTC)no subject
Date: 2014-12-22 03:33 pm (UTC)no subject
Date: 2014-12-22 03:34 pm (UTC)no subject
Date: 2014-12-22 03:36 pm (UTC)no subject
Date: 2014-12-22 05:02 pm (UTC)no subject
Date: 2014-12-22 03:11 pm (UTC)Что ещё может быть? Вылезание за границы типа. Слева int, справа bigint. Опять же теоретизирую. И снова неясно, почему помогает ноль. И снова разработчику желательно знать типы своих данных.
Короче, я как СУБД-шник заинтригован предельно.
no subject
Date: 2014-12-22 03:27 pm (UTC)Баг, естественно. При одних значениях A, B и C всё нормально, при специфических - фиг.
А ноль - это такое заклинание, которое практически всегда помогает.
no subject
Date: 2014-12-22 03:40 pm (UTC)no subject
Date: 2014-12-22 03:52 pm (UTC)no subject
Date: 2014-12-22 04:11 pm (UTC)Видимо речь не о СУБД как таковой, а о неком продукте, который ставится надстройкой на настоящую СУБД. Типа как SAP. (Не о них ли речь, кстати?) Поэтому всё что можно и нельзя хранится в строчках. Вот например мы из SAP ECC сосём данные. У них все ID - числа, хранимые в строках varchar(10). Поэтому их добивают слева нулями для правильной сортировки. Но отображают на экране без нулей. Мы долго втыкали, что это и зачем оно так.
Судя по операции в примере, речь в нём тоже идёт о каком-то составном айдишнике. Зачем ещё может быть нужна такая специфическая математика. :)
no subject
Date: 2014-12-22 04:30 pm (UTC)Это в тот раз. В этот раз типы для чисел нормальные.
Видимо речь не о СУБД как таковой,
Отнюдь. А надстройка - это как раз то, что мигрирует. К SAP интерфейс, кстати, тоже есть. Со всеми радостями, оттуда приходящими.
no subject
Date: 2014-12-23 05:34 am (UTC)no subject
Date: 2014-12-23 09:10 am (UTC)no subject
Date: 2014-12-24 01:41 pm (UTC)no subject
Date: 2014-12-24 01:49 pm (UTC)select a, b,c , ( A * 100000 + B + 0) as test
?
Чтобы было ясно, о чем речь.
no subject
Date: 2014-12-24 02:33 pm (UTC)no subject
Date: 2014-12-24 02:16 pm (UTC)Если бы там было неравенство всегда, можно было бы о чём-то говорить. Но феномен возникает только при специфичных значениях для A, B и С.
no subject
Date: 2014-12-24 08:32 pm (UTC)no subject
Date: 2014-12-24 08:39 pm (UTC)вы удаляете неугодные вам камменты!
no subject
Date: 2014-12-24 09:03 pm (UTC)no subject
Date: 2014-12-24 09:23 pm (UTC)=, *=, =*
что скажете?
no subject
Date: 2014-12-24 09:42 pm (UTC)Я знаю о чём я пишу, знаю в чём ошибка. То, что информация не полная, так остальное ДСП.
А кто хочет викторин, может устраивать в другом месте.
no subject
Date: 2014-12-24 10:08 pm (UTC)И, если такое добро сюда полезло, пора закрывать лавочку.