Page 31 of 44

Posted: 05.09.2012, 21:00
by EgonHugeist
olehs,
Quotting is applied using IZIdentifierConvertor, which is smart enough to add quotes only when they are really needed.
Hum this i didn't know. Thank you for that advice. But i was wondering the the MySQL-IZIdentifierConvertor was not able to dequote the `P1` parameter (ExtractQuote). I did it manually.
But I think the problem is that TZStoredProcedure doesn't handle overloads.
Again something new for me. Never heared about overloads.
do you think we can add overloads handling?
No problem for me. I propose a new published property on the TZStoredProc. And an additional column(the last column to do not break existing apps.) on the UncachedGetProcedures would neccessary too. What do you think about an additional pattern parameter 'overload: String = ''). Or do you have a better idea, Oleg?

miab3,
[dbo].[ABTEST;1]
This issue can only be solved if this 'overload' is excluded from the names conditions. This is what Oleg want to do.

Posted: 05.09.2012, 21:42
by olehs
EgonHugeist,
But i was wondering the the MySQL-IZIdentifierConvertor was not able to dequote the `P1` parameter (ExtractQuote). I did it manually.
This is strange. I didn't test it, but it looks like everything is fine with it.
No problem for me. I propose a new published property on the TZStoredProc. And an additional column(the last column to do not break existing apps.) on the UncachedGetProcedures would neccessary too. What do you think about an additional pattern parameter 'overload: String = ''). Or do you have a better idea, Oleg?
I don't think it's good to have it in a separate property, it's a part of procedure's description.
Look at the PGAdmin. It lists the function tree as
ABTEST(integer, integer, character varying)
proc_composit(integer, integer)


for MSSQL it will be
ABTEST;1
ABTEST;2


So the most comfortable place for it is in StroredProcName as a part of name.
There is actually a function in PG that returns function's ID-string '(integer, integer, character varying)', but it was introduced in 8.4

How to get overloads in oracle - I don't know.

Posted: 05.09.2012, 22:25
by miab3
@EgonHugeist

I do not know if you noticed that I wrote that after the r1726 is worse than before with MySQL procedures.

Michal

Posted: 06.09.2012, 06:49
by olehs
miab3,

can you please try revert local changes (if any ) and rebuild again, because 1726 was a fix just for MySQL and it cannot break all DACs (eventually). Besides, I work with latest revision on XE2 and don't have big problems with PostgreSQL, Firebird, MySQL and MSSQL

Posted: 06.09.2012, 07:22
by EgonHugeist
miab3,


Yes i have noticed it. This makes me curious. I will run the test with your proposed procedure creation today.

olehs,
I have no ideas how to manage that with Oracle too. Can you point me to an artice which describes what overloads exacly are?
May i propose again to have an additional column on the MetaInformations? Then we can improve the quotes on the component too. We. Can check the name and the overoad.. If both exists then quote the name and append the overoad unquoted. If the overoad coumn is null then use only then name. What do you think?

Posted: 06.09.2012, 07:40
by olehs
May i propose again to have an additional column on the MetaInformations? Then we can improve the quotes on the component too. We. Can check the name and the overoad.. If both exists then quote the name and append the overoad unquoted. If the overoad coumn is null then use only then name. What do you think?
Yes, I absolutley agree about the column. But I was also talking about the way users can select desired overload. For this we need also to introduce to metadata some methods that will parse user input and recognize overloads specification.

Here are links describing usage of overloads
http://www.postgresql.org/docs/8.4/stat ... TION-NOTES
http://msdn.microsoft.com/en-us/library/ms187926.aspx - the ;number parameter, but looks like it's deprecated
http://docs.oracle.com/cd/B12037_01/app ... htm#i12352

Posted: 06.09.2012, 09:47
by miab3
@EgonHugeist

Somewhere in the debugger just before the error occurred:

Code: Select all

Results 'decimal(19'
Michal

Posted: 06.09.2012, 10:35
by EgonHugeist
olehs,
Yes, I absolutley agree about the column. But I was also talking about the way users can select desired overload. For this we need also to introduce to metadata some methods that will parse user input and recognize overloads specification.
Can you start it?


miab3,
Results 'decimal(19'
Uff that make sence. I use the ',' as delimiter. Any parsing ideas? I'll look for a workaround..

Posted: 06.09.2012, 13:26
by EgonHugeist
miab3,

i made a fix for that dicimal point issue. R1732. Can you check it again?

Posted: 06.09.2012, 13:48
by miab3
@EgonHugeist

It is much better, but blobs and more exotic types do not go further.

Why you turned r1727?:

Code: Select all

-  SQL := 'SELECT NULL AS PROCEDURE_CAT, p.db AS PROCEDURE_SCHEM, '+
+  SQL := 'SELECT p.db AS PROCEDURE_CAT, NULL AS PROCEDURE_SCHEM, '+
Michal

Posted: 06.09.2012, 14:00
by EgonHugeist
miab3,
- SQL := 'SELECT NULL AS PROCEDURE_CAT, p.db AS PROCEDURE_SCHEM, '+
+ SQL := 'SELECT p.db AS PROCEDURE_CAT, NULL AS PROCEDURE_SCHEM, '+
I'm sorry. I used a deprecated file. Was running through my fingers.

R1733

Concering the exotic types: Examples please. Then i can prepare a test and fix the remaining issues...

Posted: 06.09.2012, 14:16
by miab3
@EgonHugeist

- BLOB
- SET('a', 'b', 'c', 'd')

Michal

Posted: 06.09.2012, 14:19
by olehs
EgonHugeist,
Can you start it?
I'll see what I can do.

Posted: 06.09.2012, 14:54
by miab3
@EgonHugeist

After R1733 even more meddled with R1727

Michal

Posted: 07.09.2012, 07:50
by EgonHugeist
miab3,

I've added the INOUT support for MySQL stored procedures. And a 'theoretical' Blob support. Didn't had the time to test it. Can you have a look there?