<p>I'm not sure I understand what you mean by "rather inflexible" ... it has a single purpose, and accomplishes that purpose in the simplest way possible.  Unless you aim is to avoid method bloat by doing something like "select_and_lock" providing an argument to the method to choose the locking mechanism. Honestly I think that having "select_for_update" and "select_for_share" as two methods would make for more self explanatory and easier to maintain code.</p>

<p>As for DBIx:Class, I am not using that in my currently application for a host of reasons, so given the choice between adding functionality to SQL::Abstract, or hacking in the <code>$sql .= " for update";</code> in the client code, the former seemed like the better option.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br>Reply to this email directly or <a href="https://github.com/dbsrgits/sql-abstract/pull/5#issuecomment-99859802">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AASeAgYsr54HyZPf0ZaSdnwGXEFiXC6Tks5oG1wygaJpZM4ERjxS.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
  <div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
    <link itemprop="url" href="https://github.com/dbsrgits/sql-abstract/pull/5#issuecomment-99859802"></link>
    <meta itemprop="name" content="View Pull Request"></meta>
  </div>
  <meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>