in reply to DBI with SQLite vs DBIX::Class search failing

If I switch the dsn back to our Postgres db and not the test sqlite db, it works, but it's the same SQL generated:

cat t/47-find_unused_number.t #!/usr/bin/env perl use strict; use warnings; use Data::Dumper; use Test::More tests => 2; use_ok 'API::Schema'; my $dsn = "dbi:Pg:dbname=api;host=;port=5432"; my $apidb = API::Schema->connect( $dsn, 'postgres' ); my $ddi_available = $apidb->resultset('CompleteNumberE164View')->find( { ddi => 441224900999, is_used => 0 } ); note 'DDI found: ' . $ddi_available->ddi; ok( $ddi_available->ddi eq '441224900999', 'Found available DDI.' ); prove -l t/47-find_unused_number.t t/47-find_unused_number.t .. ok All tests successful. Files=1, Tests=2, 1 wallclock secs ( 0.02 usr 0.00 sys + 0.55 cusr + 0.06 csys = 0.63 CPU) Result: PASS

The original schema was generated for Postgres, but populated via our sql fixtures for sqlite. The search goes work, so must be DBIx::Class related?

Replies are listed 'Best First'.
Re^2: DBI with SQLite vs DBIX::Class search failing
by poj (Abbot) on Oct 23, 2019 at 15:55 UTC

    Your code works fine for me but I was able to recreate your fault by creating ddi as a text field in api.db and entering the value with a trailing space '441224900999 '. Maybe check your SQLite file definitions match the Schema file


      In #dbix-class chat it was pointed out:

      <ilmari> the DBIC one ins showing bind_param(1, 441224900999, ...), wh +ile the plain DBI one shows bind_param(1, 441224900999) <ilmari> DBIC binds integer columns as SQL_BIGINT
      I'm going to switch to Test::Postgresql58 to match our prod Dbs. Thanks all!