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

    https://github.com/apache/incubator-trafodion/pull/661#discussion_r75365341
  
    --- Diff: core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp ---
    @@ -358,6 +358,75 @@ short CmpSeabaseDDL::copyOldReposToNew(ExeCliInterface 
* cliInterface)
       return 0;
     }
     
    +short CmpSeabaseDDL::migrateReposViews(ExeCliInterface * cliInterface,
    +                                       NABoolean & someViewSaved /* out */)
    +{
    +  short retcode = 0;  // assume success
    +  someViewSaved = FALSE;
    +
    +  // for each table that has been migrated, save and drop any views
    +  // on the old table, and attempt to recreate them on the new
    +
    +  for (Int32 i = 0; i < sizeof(allReposUpgradeInfo)/sizeof(MDUpgradeInfo); 
i++)
    +    {
    +      const MDUpgradeInfo &rti = allReposUpgradeInfo[i];
    +
    +      if ((! rti.newName) || (! rti.oldName) || (NOT rti.upgradeNeeded))
    +        continue;
    +
    +      Int64 tableUID = getObjectUID(cliInterface,
    +        getSystemCatalog(), SEABASE_REPOS_SCHEMA, rti.oldName,
    +        COM_BASE_TABLE_OBJECT_LIT, NULL, NULL, FALSE, FALSE /* ignore 
error */);
    +
    +      if (tableUID != -1)  // if we got it
    +        {
    +          NAList<NAString> viewNameList;
    +          NAList<NAString> viewDefnList;
    + 
    --- End diff --
    
    If just the select text is saved, than any grants performed directly on the 
view would be lost.  For example, role admin_role is granted select on REPOS 
view one.  After upgrade, admin_role would no longer have the privilege and any 
user granted admin_role that runs a query referencing the view one will fail.  
For a future upgrade, we may want handle privileges.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to