On Fri, Sep 04, 2009 at 02:26:57PM +0200, Alexander Malysh wrote:
> they are all correct if you speak about limit and rownum. we are unable
> to pass limit or rownum clause to sdb engine because it's abstraction
> of DBs and we don't know which DB is used.
I get he's talking about:
>> WHERE %S=:1 AND %S=:2 AND %S=:3 AND ROWNUM < 2",
^^^^ this extra condition
Damián Viano(Des).
> Am 04.09.2009 um 14:11 schrieb Alejandro Guerrieri:
>
>> BTW, while I'm adding the meta_data field on all DB engines, and I've
>> noticed a difference on dlr_oracle.c, on dlr_get_oracle:
>>
>> sql = octstr_format("SELECT %S, %S, %S, %S, %S, %S, %S FROM %S
>> WHERE %S=:1 AND %S=:2 AND %S=:3 AND ROWNUM < 2",
>> fields->field_mask, fields->field_serv,
>> fields->field_url, fields->field_src,
>> fields->field_dst, fields->field_boxc,
>> fields->table, fields->field_smsc,
>> fields->field_ts, fields->field_dst);
>>
>> While on all other engines, field_dst is not used on the condition:
>>
>> pgsql:
>> sql = octstr_format("SELECT %s, %s, %s, %s, %s, %s FROM %s WHERE
>> %s='%s' AND %s='%s' LIMIT 1;",
>>
>> sdb:
>> sql = octstr_format("SELECT %s, %s, %s, %s, %s, %s FROM %s WHERE
>> %s='%s' AND %s='%s' %s", [NO LIMIT CLAUSE]
>>
>> mysql:
>> sql = octstr_format("SELECT %S, %S, %S, %S, %S, %S FROM %S WHERE %S=?
>> AND %S=? LIMIT 1",
>>
>> and so on.
>>
>> Any reason why this is done that way? Which one should be fixed?
>>
>> Regards,
>> --
>> Alejandro Guerrieri
>> [email protected]