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

Reply via email to