Comment 1 for bug 1405015

Revision history for this message
Roberta Marton (roberta-marton) wrote :

This problem occurs during the generator phase when privileges are being
checked. When an unload statement is parsed, the parser creates the
ExeUtilHBaseBulkUnload class and set the table name to DUMMY. When the
privilege checks are later performed, the DUMMY table is checked which does not
exist.

The fix moves authorization checks from the generation phase into the binder.
A bindNode method was added to the bulk unload code to verify privileges. The
bindNode code, first checks to see if the user has the MANAGE_LOAD privilege.
If so, no additional checks are required. If not, it grabs the query expression
attached the the ExeUtilHBaseBulkUnLoad class and binds it. Binding the query
expression calls checkPrivileges and reports any violations.

This change requires that the query expression created during parsing be stored
in a new class member.