|
Функция Format_type в RedShift
|
|||
---|---|---|---|
#18+
Подскажите куда обращается (в какие системные таблицы) и что делает функция format_type. Мне нужно обойтись в тексте скрипта без этой функции. Как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 12:58 |
|
Функция Format_type в RedShift
|
|||
---|---|---|---|
#18+
Отвечаю сам себе (может кому-то поможет). Написал вот такой "умный" скрипт для извлечения данных о таблицах и столбцах. SELECT c.relname AS Table_Name, a.attname AS Column_Name, CASE a.atttypid WHEN 16 THEN 'BOOLEAN' WHEN 17 THEN 'BYTEA' WHEN 18 THEN 'CHAR1' WHEN 19 THEN 'NAME' WHEN 20 THEN 'BIGINT' WHEN 21 THEN 'SMALLINT' WHEN 22 THEN 'OIDVECTOR' WHEN 23 THEN 'INTEGER' WHEN 24 THEN 'REGPROC' WHEN 25 THEN 'TEXT' WHEN 26 THEN 'OID' WHEN 27 THEN 'TID' WHEN 28 THEN 'XID' WHEN 30 THEN 'OIDVECTOR' WHEN 700 THEN 'REAL' WHEN 701 THEN 'DOUBLE' WHEN 1005 THEN 'ARRAY' WHEN 1009 THEN 'ARRAY' WHEN 1042 THEN 'CHAR' WHEN 1043 THEN 'VARCHAR' WHEN 1082 THEN 'DATE' WHEN 1114 THEN 'TIMESTAMP' WHEN 1184 THEN 'TIMESTAMP' WHEN 1186 THEN 'INTERVAL' WHEN 1700 THEN 'NUMERIC' WHEN 2277 THEN 'ANYARRAY' END AS Data_Type, CASE a.atttypid WHEN 1043 THEN a.atttypmod - 4 ELSE NULL END AS Char_Length, CASE atttypid WHEN 21 /*int2*/ THEN 16 WHEN 23 /*int4*/ THEN 32 WHEN 20 /*int8*/ THEN 64 WHEN 1700 /*numeric*/ THEN CASE WHEN atttypmod = -1 THEN null ELSE ((atttypmod - 4) >> 16) & 65535 -- calculate the precision END WHEN 700 /*float4*/ THEN 24 /*FLT_MANT_DIG*/ WHEN 701 /*float8*/ THEN 53 /*DBL_MANT_DIG*/ ELSE null END AS Numeric_Precision, CASE WHEN atttypid IN (21, 23, 20) THEN 0 WHEN atttypid IN (1700) THEN CASE WHEN atttypmod = -1 THEN null ELSE (atttypmod - 4) & 65535 -- calculate the scale END ELSE null END AS Numeric_Scale FROM pg_namespace n INNER JOIN pg_class c ON n.oid = c.relnamespace INNER JOIN pg_attribute a ON c.oid = a.attrelid WHERE a.attnum > 0 AND NOT a.attisdropped Оказалось что числа для atttypid всегда постоянны. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 18:39 |
|
|
start [/forum/topic.php?fid=56&fpage=3&tid=2015097]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
others: | 231ms |
total: | 402ms |
0 / 0 |