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