Re: DBD::File insert/update
Jens Rehsack <[email protected]>
| Newsgroups | gmane.comp.lang.perl.modules.dbi.sybase.devel |
|---|---|
| Message-ID | <[email protected]> |
On 06/08/10 11:42, Tim Bunce wrote: > On Fri, Jun 04, 2010 at 04:12:18AM -0700, [email protected] wrote: >> >> +This modules uses hash interfaces of two column file databases. While >> +none of supported SQL engines have a support for indeces, following > > s/indeces/indices/ > >> +statements really do the same (even if they mean something completely >> +different): >> + >> + $sth->do( "insert into foo values (1, 'hello')" ); >> + >> + # this statement does ... >> + $sth->do( "update foo set v='world' where k=1" ); >> + # ... the same as this statement >> + $sth->do( "insert into foo values (1, 'world')" ); > > Is this really necessary? Can't we get duplicate inserts and > updates of non-existent rows to behave in a sane manner? The interface of the per-table API doesn't allow that :( That's exactly the reason why I thought it's required to warn about that. When I took over SQL::Statement and Tux got DBD::CSV, we talked each other and discovered that an per-table API for indices is missing. This is one goal I want to reach when developing SQL::Statement 2.0 - but it will be a long road. > The hash/DBM style databases should be modeled as two column tables > with a unique constraint on the key column. The table-API just knows: fetch_row, push_row, push_names and some optimized routines to allow update/delete specific rows. Jens