GitHub user robertamarton opened a pull request:

    https://github.com/apache/incubator-trafodion/pull/372

    TRAFODION [1879] - Integrate Library Management into Trafodion Metadata

    The initial release of library management has been delivered to Trafodion. 
This
    is follow-on work that integrates library management operations into the
    existing Trafodion infrastructure. Currently, with the initial release of
    library management, the consumer needs to run a special script to set up
    everything. This delivery incorporates the steps into existing SQL commands 
and
    removes the need for the script.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/robertamarton/incubator-trafodion init-spjs

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-trafodion/pull/372.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #372
    
----
commit 9e3dea641f54995fd5adbdbf724dae9c10dbfe40
Author: Roberta Marton <[email protected]>
Date:   2016-03-08T18:00:03Z

    TRAFODION [1879] - Integrate Library Management into Trafodion Metadata
    
    The initial release of library management has been delivered to Trafodion. 
This
    is follow-on work that integrates library management operations into the
    existing Trafodion infrastructure. Currently, with the initial release of
    library management, the consumer needs to run a special script to set up
    everything. This delivery incorporates the steps into existing SQL commands 
and
    removes the need for the script.
    
    This delivery contains:
    
    -> Support for three new INITIALIZE TRAFODION options
    -> Support for a new role (plus infrastructure to make it easier to add 
roles)
    -> Change initialize authorization to handle upgrade better
    -> Fixed couple issues found while testing
    -> New regression test (udr/TEST102)
    
    *** Support for three new INITIALIZE TRAFODION options:
    
    Three new INITIALIZE TRAFODION options have been added:
       CREATE LIBRARY MANAGEMENT - create and populates the libmgr schema
       DROP LIBRARY MANAGEMENT - drops the libmgr schema
       UPGRADE LIBRARY MANAGEMENT - adds new procedures to the libmgr library
    
    Parser was changed to support these new options, a new keyword - MANAGEMENT
    was added.
      (parser/ParKeyWords.cpp/sqlparser.y)
    
    DDL compiler was changed to recognize the new options and call 
implementation
    methods.
      (optimizer/RelExeUtil, sqlcomp/CmpSeabaseDDLcommon.cpp)
    
    The following implementation methods were added:
      createSeabaseLibmgr (code for create library management)
      dropSeabaseLibmgr (code for drop library management)
      upgradeSeabaseLibmgr(code for upgrade library management)
      createLibmgrProcs – a helper method called by create and upgrade code to
                          create libmgr procedures
      grantLibmgrPrivs – a helper method called by createLibmgrProcs and
                         initialize authorization that add grants to procedures 
for
                         the new DB__LIBMGRROLE role.
       (CmpSeabaseDDL.h/CmpSeabaseDDLroutine.cpp)
    
    Changes were made to define the new schema, library and procedures.
      (common/ComSmallDefs.h, CmpSeabaseDDLroutine.h)
    
    All procedures are defined in a new file called 
sqlcomp/CmpSeabaseDDLroutine.h.
    This file is based on similar support for system metadata tables
    (CmpSeabaseDDLmd.h).  It contains the text of all the procedures.  During
    "create library management" and "upgrade library management" operations, 
this
    list is used to create/add procedures.
    
    *** Support for a new role:
    
    Initialize authorization code was changed to create the new DB__LIBMGRROLE 
role.
    As part of this change, role infrastructure was modified to make it easier 
to
    add system roles in the future. The initialize code checks to see what roles
    have not been added, and adds them.
      (common/NAUserId.h, common/ComUser, sqlcomp/PrivMgrMD,
       sqlcomp/CmpSeabaseDDLauth, sqlcomp/PrivMgrRoles)
    
    In addition, a check is made – if the SEABASE_LIBMGR_SCHEMA exists, then
    grants are performed on the procedures to allow DB__LIBMGRROLE execute
    privilege.
      (sqlcomp/CmpSeabaseDDLcommon.cpp)
    
    *** Change initialize authorization to handle upgrade better:
    
    Changes were made so initialize authorization performs an upgrade operation 
if
    called and component privileges already exists.
      (sqlcomp/PrivMgrComponentOperations, sqlcomp/PrivMgrComponentPrivileges,
       sqlcomp/PrivMgrMD)
    
    *** Fixed couple of issues found while testing:
    
    Invalid role ID generation.  Role ID generation code was using the wrong 
range
    to determine the next role ID.
      (CmpSeabaseDDLauth.cpp)
    
    Drop schema issues with libraries.  Drop library cascade fails when the 
order
    of libraries and functions is incorrect.  If you drop function, drop 
library it
    fails with missing procedure.
      (CmpSeabaseDDLschema.cpp)

----


---
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