use Scalar::Util 'refaddr';
use Storable 'nfreeze';
+BEGIN { $ENV{SQLA_ISVALUE_IGNORE_AUTOGENERATED_STRINGIFICATION} = 0 }
+
use SQL::Abstract qw(is_plain_value is_literal_value);
# fallback setting is inheriting starting p5 50853fa9 (run up to 5.17.0)
{
package # hideee
+ SQLATest::SillyBool;
+
+ use overload
+ # *DELIBERATELY* unspecified
+ #fallback => 1,
+ bool => sub { ${$_[0]} },
+ ;
+
+ package # hideee
+ SQLATest::SillyBool::Subclass;
+
+ our @ISA = 'SQLATest::SillyBool';
+}
+
+{
+ package # hideee
SQLATest::SillyInt;
use overload
}
for my $case (
+ { class => 'SQLATest::SillyBool', can_math => 0, should_str => 1 },
+ { class => 'SQLATest::SillyBool::Subclass', can_math => 0, should_str => 1 },
{ class => 'SQLATest::SillyInt', can_math => 0, should_str => 1 },
{ class => 'SQLATest::SillyInt::Subclass', can_math => 0, should_str => 1 },
{ class => 'SQLATest::SillierInt', can_math => 0, should_str => 0 },
}
is_deeply
- is_literal_value { -ident => 'foo' },
- [ 'foo' ],
- '-ident recognized as literal'
+ is_literal_value \'sql',
+ [ 'sql' ],
+ 'literal correctly recognized and unpacked'
;
is_deeply
is_literal_value \[ 'sql', 'bind1', [ {} => 'bind2' ] ],
[ 'sql', 'bind1', [ {} => 'bind2' ] ],
- 'literal correctly unpacked'
+ 'literal with binds correctly recognized and unpacked'
;