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

ASF GitHub Bot updated SPARK-58604:
-----------------------------------
    Labels: pull-request-available  (was: )

> ALTER VIEW on a v2 ViewCatalog drops the view's dependency list
> ---------------------------------------------------------------
>
>                 Key: SPARK-58604
>                 URL: https://issues.apache.org/jira/browse/SPARK-58604
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 5.0.0
>            Reporter: Szehon Ho
>            Priority: Major
>              Labels: pull-request-available
>
> {{CatalogV2Util.viewInfoBuilderFrom}} seeds a {{View.Builder}} from an 
> existing view so that ALTER VIEW execs can override the one field that 
> changes and leave every other field untouched. It copies the schema, 
> properties, query text, SQL configs, current namespace, current catalog, 
> query column names and schema mode -- but it does not copy the typed 
> {{viewDependencies}} field.
> All three callers are metadata-only mutations that do not change the view 
> body:
> * {{AlterV2ViewSetPropertiesExec}} (ALTER VIEW ... SET TBLPROPERTIES)
> * {{AlterV2ViewUnsetPropertiesExec}} (ALTER VIEW ... UNSET TBLPROPERTIES)
> * {{AlterV2ViewSchemaBindingExec}} (ALTER VIEW ... WITH SCHEMA ...)
> Each rebuilds the payload and calls {{ViewCatalog.replaceView}}, so after any 
> of them the catalog receives a {{View}} whose {{viewDependencies()}} is 
> {{null}} and the previously recorded dependency list is silently lost. 
> Dependency lists are a first-class field on {{View}} rather than an encoded 
> string property precisely because their nested structure does not round-trip 
> through flat properties, so a catalog has no other way to recover them.
> This is reachable today through metric views, which are the only producer of 
> dependencies ({{CreateV2MetricViewExec}}): creating a metric view records its 
> source tables, and a subsequent {{ALTER VIEW ... SET TBLPROPERTIES}} drops 
> them.
> Fix: carry {{viewDependencies}} through in {{viewInfoBuilderFrom}}, 
> consistent with how the other nullable fields ({{currentCatalog}}, 
> {{schemaMode}}) are already handled.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to