public override SqlStatement VisitGrantPrivilegeStatement(PlSqlParser.GrantPrivilegeStatementContext context) { var privs = Privileges.None; if (context.ALL() != null) { privs = PrivilegeSets.TableAll; } else { var privNames = context.privilegeName().Select(x => x.GetText()); foreach (var privName in privNames) { Privileges priv; try { priv = (Privileges)Enum.Parse(typeof(Privileges), privName, true); } catch (Exception) { throw new ParseCanceledException("Invalid privilege specified."); } privs |= priv; } } var withGrant = context.WITH() != null && context.GRANT() != null; var grantee = Name.Simple(context.granteeName()); var objectName = Name.Object(context.objectName()); return(new GrantPrivilegesStatement(grantee, privs, withGrant, objectName)); }
public override SqlStatement VisitGrantPrivilegeStatement(PlSqlParser.GrantPrivilegeStatementContext context) { var privs = Privilege.None; if (context.ALL() != null) { privs = SqlPrivileges.TableAll; } else { var privNames = context.privilegeName().Select(x => x.GetText()); foreach (var privName in privNames) { try { var priv = SqlPrivileges.Resolver.ResolvePrivilege(privName); privs += priv; } catch (Exception) { throw new ParseCanceledException("Invalid privilege specified."); } } } var withGrant = context.WITH() != null && context.GRANT() != null; var grantee = SqlParseUtil.Name.Simple(context.granteeName()); var objectName = SqlParseUtil.Name.Object(context.objectName()); AddStatement(context, new GrantObjectPrivilegesStatement(grantee, privs, objectName, withGrant, new string[0])); return(base.VisitGrantPrivilegeStatement(context)); }