Как получить тип значения.

  • Автор темы trigger
  • Дата начала
Статус
В этой теме нельзя размещать новые ответы.

trigger

Guest
Как получить тип значения.

Не могу найти в инете, какой функцией получать тип значения.
То есть например я бы хотел набрать SELECT type_of('kuku'); получить
Код:
 type_of 
---------
 varchar
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: trigger
Не могу найти в инете, какой функцией получать тип значения.
То есть например я бы хотел набрать SELECT type_of('kuku'); получить
Код:
 type_of 
---------
 varchar
Вопрос: при наборе SELECT type_of(0); гипотетическая функция должна выдать:
1) integer
2) smallint
3) bigint
4) decimal
5) numeric
6) real
7) double precision

Просьба обосновать ответ, ага.
 

trigger

Guest
Легка!
(с) http://www.postgresql.org/docs/8.2/interactive/sql-syntax-lexical.html#AEN1279

A numeric constant that contains neither a decimal point nor an exponent is initially presumed to be type integer if its value fits in type integer (32 bits); otherwise it is presumed to be type bigint if its value fits in type bigint (64 bits); otherwise it is taken to be type numeric. Constants that contain decimal points and/or exponents are always initially presumed to be type numeric.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Очевидно неверное понимание сути понятия "тип данных" и принципов программирования.
Просто прийдется поверить, что тип данных по форме определить нельзя, однажды прийдет понимание, почему. Можно лишь привести данные к нужному типу, иногда с потерей части данных.

-~{}~ 08.05.07 23:16:

Кстати, угадываение никогда и не нужно. Нужно лишь правильно сформулировать задачу и свести её к приведению типов или к тому, что тип заранее известен.
 

trigger

Guest
Ха-ха! Я смеюсь Вам в лицо! (с)
Вы имели смелость утверждать не только что я неверно понимаю "сути понятия "тип данных"", но и "принципов программирования". Либо Вы имели целью унизить участника форума в моем лице, либо я действительно не понимаю "сути понятия" и "принципов программирования". Во втором случае потрудитесь описать, в чем же они состоят. Тогда, надеюсь, мне "прийдется" поверить.

Также, не могли бы Вы описать, каким таким образом postgresql понимает "суть понятия", когда определяет, какую функцию лучше использовать судя по форме данных аргументов. Например abs(0) -- какую функцию использует postgresql:
1) abs для bigint
2) abs для double precision
3) abs для integer
4) abs для numeric
5) abs для real
6) abs для smallint

Просьба обосновать ответ по обоим вопросам, ага.

PS: Если я правильно догадался, что Вы хотели спросить, то type_of('2007-05-09') вернет ('varchar'). Если Вы не понимаете, к чему это, то значит я догадался неправильно, и этот постскриптум не должен приниматься во внимание.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
>каким таким образом postgresql определяет, какую функцию лучше использовать для abs(0)

Какую именно - не знаю, надо смотреть исходники.
Вероятно, для каждого типа есть своя функция.

>Просьба обосновать ответ по обоим вопросам
Вижу один вопрос и комплекс неполноценности :)
 

trigger

Guest
> Какую именно - не знаю, надо смотреть исходники.
Хм, если прочитать то, что я написал в посте с цитатой мануала, то это будет integer.

> Вероятно, для каждого типа есть своя функция.
Хм, вероятно да, особенно если запустить psql и набрать \df abs, то можно увидеть, что есть в точности 6 таких функций :)

>Вижу один вопрос и комплекс неполноценности
Также я Вас спрашивал, в чем же состоит "суть понятия" и "принципы программирования".

Намек на комплекс я оставлю без комментариев, но, с целью улучшить запах на форумах phpclub-а, прошу модераторов обратить внимание на данный топик.
 

Фанат

oncle terrible
Команда форума
trigger
Ну, кроме модераторов тут никто с тобой и не разговаривает.
Сбавил бы ты спесь немного.
Не стоило вообще поднимать тему "Вы имели целью".
И развивать её тоже не надо.
Возможно, твой собеседник и ошибся в оценке твоих личных качеств. Вот только способ разубедить его ты выбрал самый неудачный.
 

trigger

Guest
Я вообще-то пришел сюда решать технические вопросы, и мне нет дела до чьих бы то ни было "личных качеств", и разубеждать мне нет надобности. Но вони не терплю. Я задал нормальный вопрос. "Вы имели целью" находилось в условном отношении, так что если бы я получил ответ, то претензий бы не имел.

Способы разубедить, вежливо используя цитаты из мануала уже не прокатывают? Не подскажете, что я должен был делать, как правильно спрашивать о типе значений?

Так как, предчувствую, что в скором времени этот топик будет почищен, я полагаю мне не следовало вообще создавать этот топик, да и вообще появлятся на форумах phpclub-а, если даже отцы клуба поддерживают нарушения правил. Что ж, жаль расставаться, я получил некоторый опыт за четыре года жизни тут. В клубе наступила эра, говоря словами Тома Дженнингса, "old smelly crock of shit".

Всем пока и спасибо!
 

Фанат

oncle terrible
Команда форума
Том Дженнингс, в отличие от тебя, говорил о том, к чему он имел самое непосредственное отношение. И о чем имел полное право судить. Что, заметим, не делало его мнение истиной в последней инстанции.

Будь здоров, не кашляй.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху