appsignal/sql_lexer

Column names are converted to ?

Closed this issue · 2 comments

(Tables have been renamed.)

In AppSignal, queries instrumented through Sequel appear to parameterize column references that are fully-qualified.

Example below:

SELECT count(*) AS "count" 
FROM (SELECT "foo"."ops".* 
FROM "foo"."ops" 
INNER JOIN "foo"."ihcs" ON ("foo"."ihcs"."id" = ?."ops"."ihc_id") 
INNER JOIN "foo"."incs" ON ("foo"."incs"."id" = ?."ihcs"."inc_id") 
WHERE ((?.?.? = ?) 
  AND (?.?.? IN (SELECT "foo"."inc_cats"."id" 
FROM "foo"."inc_cats" 
WHERE ((? = ?) 
  AND (?.?.? IS NOT ?)))))) AS "ops" 
LEFT OUTER JOIN "foo"."ihcs" AS "ihcs_0" ON ("ihcs_0"."id" = ?."ihc_id") 
LEFT OUTER JOIN "foo"."incs" AS "inc" ON ("inc"."id" = ?."inc_id") 
LEFT OUTER JOIN "users" AS "u1" ON ("u1"."id" = ?."u1_id") 
LEFT OUTER JOIN "users" AS "u2" ON ("u2"."id" = ?."u2_id") 
LEFT OUTER JOIN "foo"."inc_types" AS "inc_type" ON ("inc_type"."id" = ?."inciden...

Hi! Thanks for reporting!

Can you share the prepared statement this came from? Then we can add a test case for it and see where it goes wrong

@kenaniah It's fine if you scrub any sensitive information from the query, in that case just replace it with some example data.