[ 
https://issues.apache.org/jira/browse/TRAFODION-2161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15425734#comment-15425734
 ] 

ASF GitHub Bot commented on TRAFODION-2161:
-------------------------------------------

Github user robertamarton commented on a diff in the pull request:

    https://github.com/apache/incubator-trafodion/pull/661#discussion_r75235072
  
    --- Diff: core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp ---
    @@ -516,6 +585,62 @@ short 
CmpSeabaseDDL::upgradeReposComplete(ExeCliInterface * cliInterface,
     
             case 1:
               {
    +            // If there were views on the old Repository tables, they are
    +            // still there, by virtue of the fact that we did "SKIP VIEW 
CHECK"
    +            // on the ALTER TABLE RENAME. Now we will capture their view
    +            // definitions (which will contain the old table name, not the
    +            // renamed table name) and replay that against the new 
Repository
    +            // table. If the replay fails, we treat that as an 
unrecoverable
    +            // situation and ignore it. Instead, we'll save the view 
definition
    +            // text in the TEXT table with a different TEXT_TYPE and clue 
the
    +            // user in that it is there. They can then try to create the 
view
    +            // at their leisure. Note that they may have to change the view
    +            // definition themselves, e.g. if we dropped a column from the
    +            // repository table that their view happened to reference.
    +            //
    +            // Note that this work is done in one step because the only 
state
    +            // we can depend upon across redrives to this method is the 
substep
    +            // number. Any in-memory list would be lost across redrives.
    +            NABoolean someViewSaved = FALSE;
    --- End diff --
    
    If you have a view on two different REPOS tables and both tables are being 
changed.  Would the view be dropped and recreated twice?  Would they have to be 
recreated in any specific order?  Along with that, if there is a view that 
references a view on multiple REPOS tables, are there any issues?  For example, 
view one creates a view on tables REPOS1 and REPOS2, view two creates a view on 
view one,  table REPOS3 and a system metadata table.    REPOS1, REPOS2, REPOS3, 
and the system metadata table are all being upgraded.


> Metadata upgrade failed when there is user view on repository tables
> --------------------------------------------------------------------
>
>                 Key: TRAFODION-2161
>                 URL: https://issues.apache.org/jira/browse/TRAFODION-2161
>             Project: Apache Trafodion
>          Issue Type: Bug
>          Components: sql-cmu
>         Environment: centos6.7 CDH5.4.8
> esgynDB R2.2 0811 daily build
>            Reporter: Gao, Rui-Xian
>            Assignee: David Wayne Birdsall
>
> [trafodion@centosqa-1 ~]$ sqlci
> EsgynDB Advanced Conversational Interface 2.2.0
> Copyright (c) 2015-2016 Esgyn Corporation
> >>get schemas;
>  
> *** ERROR[1395] Trafodion needs to be upgraded on this system due to metadata 
> version mismatch. Do 'initialize trafodion, upgrade' to upgrade metadata. Or 
> do 'initialize trafodion, drop' followed by 'initialize trafodion'. Be aware 
> that the second option will delete all metadata and user objects from 
> Trafodion database                       .
>  
> *** ERROR[8822] The statement was not prepared.
>  
> >>initialize trafodion, upgrade;
> Metadata Upgrade: started
>  
> Version Check: started
>   Metadata needs to be upgraded from Version 1.0.1 to 2.1.0.
>   Upgrade needed for Catalogs, Privileges, Repository.
> Version Check: done
>  
> Drop Old Metadata: started
> Drop Old Metadata: done
>  
> Backup Current Metadata: started
> Backup Current Metadata: done
>  
> Drop Current Metadata: started
> Drop Current Metadata: done
>  
> Initialize New Metadata: started
> Initialize New Metadata: done
>  
> Copy Old Metadata: started
> Copy Old Metadata: done
>  
> Validate Metadata Copy: started
> Validate Metadata Copy: done
>  
>  
> Delete Old Metadata Info: started
> Delete Old Metadata Info: done
>  
> Upgrade Repository: Started
>   Start: Drop Old Repository
>   End:   Drop Old Repository
>   Start: Rename Current Repository
> Upgrade Repository: Restoring Old Repository
> Start: Rename Old Repository back to New
> End: Rename Old Repository back to New
> Upgrade Repository: Restore done
>  
> Drop Old Metadata: started
> Drop Old Metadata: done
>  
> Metadata Upgrade: failed
>  
>  
> *** ERROR[1427] Table cannot be renamed. Reason: Operation not allowed if 
> dependent views exist. Drop the views and recreate them after rename.
>  
> *** ERROR[8839] Transaction was aborted.
>  
> --- SQL operation failed with errors.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to