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.
This problem occurs during the generator phase when privileges are being kUnload class and set the table name to DUMMY. When the
checked. When an unload statement is parsed, the parser creates the
ExeUtilHBaseBul
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. kUnLoad class and binds it. Binding the query
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 ExeUtilHBaseBul
expression calls checkPrivileges and reports any violations.
This change requires that the query expression created during parsing be stored
in a new class member.