Subject: | Using Tie::RDBM with Firebird |
Date: | Thu, 19 Jul 2012 08:21:28 -0700 |
To: | bug-Tie-DBI [...] rt.cpan.org |
From: | "Daniel L. Miller" <dmiller [...] amfes.com> |
Hi!
Forgive me if I'm writing to the wrong place - I wanted to start here
before trying to contact personal addresses.
I'm trying to get Tie::RDBM to work with Firebird. As the DBD::Firebird
driver has reached 1.0, I'm hoping to be successful in this regard.
Initially, I've made additions for the Firebird driver in the arrays.
Simple enough - basically duplicating the 'mysql' entries for 'Firebird'
in both DBI.pm and RDBM.pm. In the case of the %Types structure, the
proper DDL is a little more complicated than a simple qw would allow:
'Firebird' => ['char(255) CHARACTER SET OCTETS COLLATE
OCTETS','char(255) CHARACTER SET OCTETS COLLATE OCTETS','integer','1','0'],
Now that I've gotten this far - I'm trying to determine where my current
problem lies. Performing a trace, I see SQL being generated in the form:
select * from <table> where pkey=''
<table> of course can be any of the tables - but it's the empty where
clause that concerns me. I don't know about other databases, but
Firebird treats such a statement as an attempt to search for a null -
and since we're searching against a defined non-null primary key nothing
is returned.
I'm not certain yet whether this is being generated directly by
Tie::RDBM, or if it's being caused by the calling program. But if it IS
directly generated - then even though such a WHERE clause might work
with mysql, I think it should be changed as a standard.
--
Daniel L. Miller, VP - Engineering, SET
AM Fire & Electronic Services, Inc. [AMFES]
dmiller@amfes.com 702-312-5276