LemonLDAPNG / Apache-Session-Browseable

Apache::Session::Browseable Perl module
http://search.cpan.org/dist/Apache-Session-Browseable/
Other
3 stars 5 forks source link

Oracle support is broken #15

Open maxbes opened 5 years ago

maxbes commented 5 years ago

Oracle support on this module is currently broken. There is a syntax error at https://github.com/LemonLDAPNG/Apache-Session-Browseable/blob/8a4857459ade45b3d6cfb793783a0b22885f4a35/lib/Apache/Session/Browseable/Oracle.pm#L9 (missing semicolon)

and incorrect module references at https://github.com/LemonLDAPNG/Apache-Session-Browseable/blob/8a4857459ade45b3d6cfb793783a0b22885f4a35/lib/Apache/Session/Browseable/Oracle.pm#L23 (should be JSON::(un)serialize)

However, a more grave issue is that Oracle does not allow starting with an underscore in unquoted column names. So in order to support Oracle, you would need to replace all

WHERE _uid="dwho"

with

WHERE `_uid`="dwho"

Which looks like a pretty big change potentially impacting all other modules, just for Oracle's benefit.

Since this bug seems like it's been around for a while, I'm wondering if Oracle is being used in the wild with this module at all?

(One of my clients is running an intrusively patched version of Apache::Session::Browseable in order to mitigate those problems, but they might be the only ones)

I'm wondering what's best between fixing Oracle support in its current state (using underscore-prefixed column names), or changing the module to instead make use of native JSON data types in oracle ( https://docs.oracle.com/database/121/ADXDB/json.htm#ADXDB6399) similar to PgJson

coudot commented 5 years ago

Only a typo fixed for 1.3.1 release, some work left to do.

guimard commented 5 years ago

@coudot: yes, that's why I kept it opened