Subject Re: [firebird-tools] Temporary tables and interfaces
Author Milan Babuskov
Daniel Rail wrote:
>>Also, it would be good if you could copy/paste how they defined
>>SQL-client modules. I also sound like a very broad term, and can easily
>>be misinterpreted.
> Looking through the documentation, a SQL Client module is a plugin
> that contains externally invoked procedures. At least that's what I
> understood of the documentation after reading it a few times. And,
> I don't think that I will be quoting it, because of it's length.

Ok. So, to try to summarize, during a single SQL-session multiple
SQL-client modules can use temporary tables but modules can't see the
data of each other.

This said, it really looks like temporary tables should not be bound to
username, but to a single connection.

>>I guess in every SQL statement?
> That would be my guess, if SQL Client modules would be implemented and
> used.

Which they are currently not (in Firebird)? Or, if I understood it
correctly, SQL client module is actually an instance of client library,
like GDS.DLL for example?

>>>7) If ON COMMIT is not specified, then ON COMMIT DELETE ROWS is
>>And if it is? What other could happen to the rows?
> The other commit action is PRESERVE.

I expected something like that, but PRESERVE for what or who? Make it
persistent in database for everyone? or just that user? or?

Since the word COMMIT is used, it kind-of applies that this should be
used in context of transaction? Perhaps they meant:

- start the transaction
- create a temporary table (with option to drop it on commit)
- do something with it
- commit (temp. table may be dropped or not)
- if not, the temp table is there for the next transaction
- when user disconnects from database, drop it

> I try to understand the documentation, but because of how it is
> written, a person has to read the information a few times to
> understand(at least start to) what it means.

It really seems that way.

Milan Babuskov