logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SQL::Abstract::Util - Small collection of utilities for SQL::Abstract::Classic

Exportable Functions

is_plain_value
       Determines if the supplied argument is a plain value as understood by this module:

       •   The value is "undef"

       •   The value is a non-reference

       •   The value is an object with stringification overloading

       •   The value is of the form "{ -value => $anything }"

       On failure returns "undef", on success returns a scalar reference to the original supplied argument.

       •   Note

           The  stringification  overloading  detection is rather advanced: it takes into consideration not only
           the presence of a "" overload, but if that fails also checks for enabled  autogenerated  versions  of
           "", based on either "0+" or "bool".

           Unfortunately  testing  in  the  field  indicates that this detection mayticklealatentbuginperlversionsbefore5.018, but only when very large numbers of stringifying objects are involved.  At the
           time of writing ( Sep 2014 ) there is no clear explanation of  the  direct  cause,  nor  is  there  a
           manageably small test case that reliably reproduces the problem.

           If  you  encounter  any  of the following exceptions in randomplaceswithinyourapplicationstack -
           this module may be to blame:

             Operation "ne": no method found,
               left argument in overloaded package <something>,
               right argument in overloaded package <something>

           or perhaps even

             Stub found while resolving method "???" overloading """" in package <something>

           If you fall victim to the above - please attempt to reduce the problem to  something  that  could  be
           sent  to the SQL::Abstract::Classic developers (either publicly or privately). As a workaround in the
           meantime you can set $ENV{SQLA_ISVALUE_IGNORE_AUTOGENERATED_STRINGIFICATION} to a true  value,  which
           will  most  likely eliminate your problem (at the expense of not being able to properly detect exotic
           forms of stringification).

           This notice and environment variable will be removed in a future version, as soon as  the  underlying
           problem is found and a reliable workaround is devised.

   is_literal_value
       Determines if the supplied argument is a literal value as understood by this module:

       •   "\$sql_string"

       •   "\[ $sql_string, @bind_values ]"

       On  failure returns "undef", on success returns an array reference containing the unpacked version of the
       supplied literal SQL and bind values.

perl v5.36.0                                       2022-11-19                           SQL::Abstract::Util(3pm)

Name

       SQL::Abstract::Util - Small collection of utilities for SQL::Abstract::Classic

See Also