Open
Description
PR #543 adds a few more unit tests:
"MixedCase".function_dup(int, int, int)
"MixedCase"."function_Dup"(int, int, int)
"MixedCase".function_dup(int, int, int, json)
"MixedCase".function_dup(int, int, int, jsonb)
Martin should be able to create these with de-duplicated names, e.g. function_dup.1
, function_dup.2
, etc.
Implementation notes
- The complex part is that configuration must be able to support multiple argument types. Config spec may need to be expanded, and we would need to support function argument parsing. Parsing should also do some basic PostgeSQL type normalization like
int -> int4
andbigint -> int8
postgres:
functions:
function_source_id:
schema: "public"
# Idea 1: more ergonomic, but harder to implement:
function: "function_zxy_query(int4, int4, int4)"
# Idea 2: less ergonomic but simpler
function: function_zxy_query
args: ["int4", "int4", "int4"]
fn query_available_function(...) -> InfoMap<InfoMap<(PgSqlInfo, FunctionInfo)>>
, which is aHashMap<String, HashMap<String, (PgSqlInfo, FunctionInfo)>>
- in other words a map of schema name to a map of function name (unique) to all the data about the given function. In order to support multiple names, it would have to be changed to something like this:InfoMap<InfoMap<HashMap<Vec<String>, (PgSqlInfo, FunctionInfo)>>>
(list of arguments is used as a key to arguments).