// Port of sqlglot/typing/postgres.py.
///|
/// Python `sqlglot.typing.postgres.EXPRESSION_METADATA`.
fn postgres_expression_metadata() -> ExprMetadata {
let m = extend_metadata(base_expression_metadata)
returns_all(m, [Ntile, WidthBucket], INT)
returns_all(
m,
[
Encode,
Left,
Right,
Overlay,
Reverse,
Pad,
Format,
Hex,
SplitPart,
Normalize,
RegexpReplace,
Replace,
],
TEXT,
)
returns_all(m, [Decode], VARBINARY)
returns_all(m, [TimeFromParts], TIME)
returns_all(m, [TimestampFromParts, Localtimestamp], TIMESTAMP)
annotate_all(m, [BitwiseAndAgg, BitwiseOrAgg, BitwiseXorAgg], (s, e) => {
s.annotate_by_args(e, [Key("this")])
})
m[ToNumber] = Returns(D(DECIMAL))
m
}