powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как одним запросом определить, что тип данных является числовым ?
7 сообщений из 7, страница 1 из 1
Как одним запросом определить, что тип данных является числовым ?
    #40040573
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача простая ?
Пакет https://github.com/petere/pguint устанавливает 5 базовых типов: int1 , uint1 , uint2 , uint4 , uint8 .
проблема в том, что для этих типов поле " pg_type.typcategory " равен " U " (user type), а не " N " (numeric type).
И тем не менее, задача решается. Кто справится ?
...
Рейтинг: 0 / 0
Как одним запросом определить, что тип данных является числовым ?
    #40041874
grgdvo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cyrax_02,

Что если исправить uint.sql и для CREATE TYPE поставить CATEGORY = 'N' ??
Будет категория число, что в общем-то даже и лучше для парсера понимать, что там у вас.
...
Рейтинг: 0 / 0
Как одним запросом определить, что тип данных является числовым ?
    #40042357
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grgdvo
Что если исправить uint.sql и для CREATE TYPE поставить CATEGORY = 'N' ??
Будет категория число, что в общем-то даже и лучше для парсера понимать, что там у вас.

Да, можно исправить. Но вариант будет работать только для меня.
Решение должно быть общее, для всех. Т.е. должно работать после установки расширения uint по умолчанию (без правок скрипта).
Другие расширения также могут создавать новые целочисленные типы с категорией "U".

Согласно справке, категория "U" как раз и предназначена для всех пользовательских типов, не зависимо от их конкретного типа.
Т.е. указание категории "U" для пользовательского целочисленного типа формально является правильным, а "N" - неправильным.
...
Рейтинг: 0 / 0
Как одним запросом определить, что тип данных является числовым ?
    #40042373
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас может чушь скажу, по классам операторов и возвращаемым значениям.
Например если определен +, то какой тип результата.
...
Рейтинг: 0 / 0
Как одним запросом определить, что тип данных является числовым ?
    #40042760
grgdvo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cyrax_02,

ну есть еще вот такие функции

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
test=> select int4in('123456');
 int4in 
--------
 123456
(1 строка)

test=> select int4in('123456abc');
ОШИБКА:  неверный синтаксис для типа integer: "123456abc"
...
Рейтинг: 0 / 0
Как одним запросом определить, что тип данных является числовым ?
    #40042950
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, может у меня одного такая проблема: никогда ничего не могу найти в справках поиском. Ни в MySQL, ни PostgreSQL, ни где-бы то ни было ещё. Вот и сейчас - если Яндекс не находит, то и поиск в официальной справке с вероятностью 99% тоже не найдёт. Пример - функция int4in . Хрен найдёшь.


grgdvo
Cyrax_02, ну есть еще вот такие функции
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
test=> select int4in('123456');
 int4in 
--------
 123456

(1 строка)
test=> select int4in('123456abc');
ОШИБКА:  неверный синтаксис для типа integer: "123456abc"

Чем использование этой функции принципиально отличается от каста вида '123456'::int4 и '123456abc'::int4 ?
И как эти конструкции могут помочь в проверке типа данных (например, uint4 ) на "целочисленность" ?
...
Рейтинг: 0 / 0
Как одним запросом определить, что тип данных является числовым ?
    #40042961
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02,

int4in это внутренняя служебная функция... поэтому в доке ее нет (и в приложениях я бы на такие вещи не стал бы закладываться без крайней необходимости).

в доке они упомянуты в https://www.postgresql.org/docs/13/sql-createtype.html
в части base types ( input_function and output_function и тд).


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как одним запросом определить, что тип данных является числовым ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]