Hi Brian, On Sun, Nov 30, 2008 at 10:06 PM, Brian Aker <[EMAIL PROTECTED]> wrote:
>>> Is there any advantage in CSV having delete or update? Truncate I >>> understand.... >> >> Would be nice to have, but indeed - not essential. > > The reason I ask is that our architecture is quickly moving to the point > where engines have to be either upgraded to be row level locking, or they > need to be tossed. > > CSV is row level locking for UPDATE and DELETE. For INSERT though it is row. I am guessing this should read "CSV is *table* level locking for UPDATE and DELETE..."? > This problem, namely easy data load, needs a complete rethinking. > > A set of questions to ask: > > 1) Does data loading need to be JOINABLE? In the scenario I am thinking of, yes. The scenario is scanning a large stream of rows, and using values from the stream to look up keys in a number of relatively small, well indexed tables. (If it helps at all - the idea is to have something to conveniently load a star schema directly from a CSV file. Each row from the CSV file would ultimately result in one row in a fact table, but instead of inserting the values from the CSV file, we'd be inserting integer key values that we looked up in dimension tables). > 2) Do you want to leave it in its original container and be able to use it? Do you mean, is the engine allowed to make a copy and work on that? Well I'd prefer it if changes made by an external program became visible after, say, flushing the table, or maybe when a new transaction is initiated (not that I want support for transactions, it just seems a convenient way of defining scope for a repeatable read operation) > 3) Do you want to be able to update it from within the database? Well it would nice to be able to dump a large set to CSV by writing it to a CSV table. But update as in, modify an existing row - that is not what I would be holding my breath for. > > If we provided a good tool, should this even be in the database, or a part > of a new protocol? Well, IMO, there are indeed good tools external to the database to do all this stuff. Exchanging data through a storage engine in this manner would merely be a convenience feature. Kind regards, Roland > > Cheers, > -Brian > > -- > _______________________________________________________ > Brian "Krow" Aker, brian at tangent.org > Seattle, Washington > http://krow.net/ <-- Me > http://tangent.org/ <-- Software > _______________________________________________________ > You can't grep a dead tree. > > > > -- Roland Bouman http://rpbouman.blogspot.com/ _______________________________________________ Mailing list: https://launchpad.net/~drizzle-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~drizzle-discuss More help : https://help.launchpad.net/ListHelp

