honeysql 2023-05-30

Hi, why does honeysql formats at? with two question marks? (hsql/format [pg-ops/at? [:-> :a :b] "something"] {:inline true}) => ["(a -> b) @?? 'something'"]

That seems like an escape sequence. A single ? is a parameter, and ?? is a literal ?, perhaps.

Unless it doesn't work?..

DBeaver considers it as an input parameter with one and two question marks. If the interpretation of ? as an input parameter is turned off, both versions work the same.

Yeah, I wouldn't compare a string designed to be prepared with JDBC to something that DBeaver expects. There can be all sorts of potential differences. If that @?? works just fine, then all is well. If it doesn't, then it should be an issue for HoneySQL.

Yes, ?? is an escaped ? for JDBC.

👍 1

@p-himik Sure, but it would be nice to have it there )).

The goal of HoneySQL is primarily to produce a vector of SQL + params for use with clojure.java.jdbc or next.jdbc. If you use its output for something else, you may well need to make some adjustments.