mojolicious / mojo-pg

Mojolicious :heart: PostgreSQL
https://metacpan.org/release/Mojo-Pg
Artistic License 2.0
101 stars 46 forks source link

Mojo::Pg fails to load when SQL::Abstract cannot be found #83

Open s1037989 opened 2 years ago

s1037989 commented 2 years ago

Steps to reproduce the behavior

use Mojo::Pg; fails if SQL::Abstract isn't available.

Expected behavior

Because SQL::Abstract isn't strictly required (or doesn't need to be) Mojo::Pg should not fail if Abstract cannot be found.

Actual behavior

Mojo::Pg fails to load of SQL::Abstract cannot be found.

Possible solution

Make loading it optional, kind of like how Net::DNS::Native and a few others are optional for Mojolicious. When SQL::Abstract cannot be found and isn't loaded, the abstract attribute isn't set, and the convenience methods in Mojo::Pg::Database are not created with monkey_patch.

kraih commented 2 years ago

👎 Too much core Mojo::Pg functionality would not work without it.

s1037989 commented 2 years ago

Wow, really? I searched all over the source for abstract, select, insert, update, and delete and no hits looked essential.

Obviously you know better than me! But would you be willing to link me to an example in the source that depends on it?

FWIW, I even successfully ran the synopsis of Minion with the Mojo::Pg backend and use SQL::Abstract; commented out in Mojo::Pg.