mysql-simple icon indicating copy to clipboard operation
mysql-simple copied to clipboard

feature request: make query value substitution template more permissive

Open mgmeier opened this issue 9 years ago • 3 comments

Currently, the template INSERT INTO table (a, b) VALUES (?, UNIX_TIMESTAMP(?)) fails in formatError with the message "foo". Obviously, the regex used in formatError can't match the the '?' characters in templates like the one given above.

My suggestion is to perform substition more closely oriented to '?'-characters, und thus make the template more permissive by allowing SQL expressions inside.

Maybe, #12 could be addressed simultaneously, if a method other than regex matching is chosen for checking the template's well- or ill-formedness / splitting the query into template and non-template parts.

NB. buildQuery, which performs the actual substitution of the '?' characters, seems permissive enough at first glance...

mgmeier avatar Sep 22 '15 22:09 mgmeier

I'd be willing to implement and send you a PR; I'd just need to know if this feature is desired at all, the way I proposed it, or if it doesn't fit the concept somehow.

mgmeier avatar Sep 23 '15 20:09 mgmeier

I just submitted PR #23, please review.

  • Tested: formatMany extracts substition group form template correctly
  • Untested: buildQuery correctly fills substitution group
  • Untouched: version nr. bump, formatMany comment

Thanks for considering.

mgmeier avatar Sep 29 '15 23:09 mgmeier

Bump. Since I'm using mysql-simple in an active project... did you give changing the syntax of the query value substitution template any thoughts?

mgmeier avatar Jan 19 '16 20:01 mgmeier