-
+
The Information Schema
datetime_precision
cardinal_number
- If data_type identifies a date, time, or
- interval type, the declared precision; null for all other data
- types or if no precision was declared.
+ If data_type identifies a date, time,
+ timestamp, or interval type, this column contains the (declared
+ or implicit) fractional seconds precision of the type for this
+ attribute, that is, the number of decimal digits maintained
+ following the decimal point in the seconds value. For all
+ other data types, this column is null.
datetime_precision
cardinal_number
- If data_type identifies a date, time, or
- interval type, the declared precision; null for all other data
- types or if no precision was declared.
+ If data_type identifies a date, time,
+ timestamp, or interval type, this column contains the (declared
+ or implicit) fractional seconds precision of the type for this
+ column, that is, the number of decimal digits maintained
+ following the decimal point in the seconds value. For all
+ other data types, this column is null.
cardinal_number
If the domain has a numeric type, this column contains the
- (declared or implicit) precision of the type for this column.
+ (declared or implicit) precision of the type for this domain.
The precision indicates the number of significant digits. It
can be expressed in decimal (base 10) or binary (base 2) terms,
as specified in the column
cardinal_number
If the domain has an exact numeric type, this column contains
- the (declared or implicit) scale of the type for this column.
+ the (declared or implicit) scale of the type for this domain.
The scale indicates the number of significant digits to the
right of the decimal point. It can be expressed in decimal
(base 10) or binary (base 2) terms, as specified in the column
datetime_precision
cardinal_number
- If the domain has a date, time, or interval type, the declared
- precision; null for all other data types or if no precision was
- declared.
+ If data_type identifies a date, time,
+ timestamp, or interval type, this column contains the (declared
+ or implicit) fractional seconds precision of the type for this
+ domain, that is, the number of decimal digits maintained
+ following the decimal point in the seconds value. For all
+ other data types, this column is null.
*
* Copyright (c) 2003-2009, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.53 2009/02/24 10:06:32 petere Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.54 2009/06/10 07:03:34 petere Exp $
*/
/*
RETURNS NULL ON NULL INPUT
AS
$$SELECT
- CASE WHEN $2 = -1 /* default typmod */
- THEN null
+ CASE WHEN $1 IN (1082) /* date */
+ THEN 0
WHEN $1 IN (1083, 1114, 1184, 1266) /* time, timestamp, same + tz */
- THEN $2
+ THEN CASE WHEN $2 < 0 THEN 6 ELSE $2 END
WHEN $1 IN (1186) /* interval */
- THEN $2 & 65535
+ THEN CASE WHEN $2 < 0 THEN 6 ELSE $2 & 65535 END
ELSE null
END$$;