[ 
https://issues.apache.org/jira/browse/FLINK-39604?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-39604:
-----------------------------------
    Labels: pull-request-available  (was: )

> Extend DESCRIBE FUNCTION EXTENDED to support PTF fields
> -------------------------------------------------------
>
>                 Key: FLINK-39604
>                 URL: https://issues.apache.org/jira/browse/FLINK-39604
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table SQL / API
>    Affects Versions: 2.2.0
>            Reporter: Natea Eshetu Beshada
>            Assignee: Natea Eshetu Beshada
>            Priority: Minor
>              Labels: pull-request-available
>
> DESCRIBE FUNCTION EXTENDED was introduced in FLINK-35822 before Process Table 
> Functions (PTFs) landed under FLIP-440 (FLINK-36705 and follow-ups). As a 
> result, none of the metadata that makes a PTF distinctive is shown today.
> Currently, DescribeFunctionOperation#execute emits, under the EXTENDED 
> branch, only:
>   - kind
>   - requirements
>   - is deterministic
>   - supports constant folding
>   - signature
> It calls FunctionDefinition#getTypeInference(...) solely to render the 
> signature, ignoring the PTF-specific data already available on the same 
> TypeInference instance:
>   - TypeInference#getStaticArguments() — per-argument traits such as 
> ROW_SEMANTIC_TABLE / SET_SEMANTIC_TABLE, OPTIONAL_PARTITION_BY, 
> PASS_COLUMNS_THROUGH, SUPPORT_UPDATES, REQUIRE_UPDATE_BEFORE,
>   REQUIRE_FULL_DELETE, REQUIRE_ON_TIME.
>   - TypeInference#getStateTypeStrategies() — named state entries with their 
> declared types and TTL (from @StateHint(ttl = ...)).
> This makes it hard for users to introspect PTFs from SQL — e.g. to confirm a 
> function carries state, what its TTL is, or whether an argument requires ON 
> TIME.
> Proposed Changes
> When DESCRIBE FUNCTION EXTENDED targets a function whose TypeInference 
> exposes static arguments and/or state entries, append additional rows to the 
> existing (info name, info value) result, e.g.:
> {{  
> +-----------------------------+-----------------------------------------------+}}
> {{  | info name                   | info value                                
>     |}}
> {{  
> +-----------------------------+-----------------------------------------------+}}
> {{  | kind                        | PROCESS_TABLE                             
>     |}}
> {{  | requirements                | []                                        
>     |}}
> {{  | is deterministic            | true                                      
>     |}}
> {{  | supports constant folding   | false                                     
>     |}}
> {{  | signature                   | f(input => <ROW...>, on_time => 
> <TIMESTAMP>)  |}}
> {{  | argument: input             | type=ROW<...>, 
> traits=[SET_SEMANTIC_TABLE,    |}}
> {{  |                             |   OPTIONAL_PARTITION_BY, SUPPORT_UPDATES] 
>     |}}
> {{  | argument: on_time           | type=TIMESTAMP_LTZ(3), 
> traits=[REQUIRE_ON_TIME]|}}
> {{  | state: counter              | type=BIGINT, ttl=1 d                      
>     |}}
> {{  
> +-----------------------------+-----------------------------------------------+}}
> The two-column output schema is unchanged; only new rows are added, and only 
> when the underlying TypeInference carries that metadata. No new SQL syntax.
> Out of Scope
>   - New columns or a new SQL keyword (e.g. DESCRIBE FUNCTION ... STATE). Can 
> be considered separately if needed; would require a FLIP.
>   - Changes to non-EXTENDED DESCRIBE FUNCTION output.
> Acceptance Criteria
>   - New rows produced for PTFs and any other functions whose TypeInference 
> exposes static arguments / state.
>   - No change in output for scalar/aggregate/table functions that don't 
> expose this metadata.
>   - Tests in DescribeFunctionOperationTest (or equivalent) cover a PTF with 
> state + traited arguments.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to