the operator "=" does not work for some SQL queries
От | pgsql-bugs@postgresql.org |
---|---|
Тема | the operator "=" does not work for some SQL queries |
Дата | |
Msg-id | 200104201926.f3KJQ6g62858@hub.org обсуждение исходный текст |
Ответы |
Re: the operator "=" does not work for some SQL queries
|
Список | pgsql-bugs |
Harald Bartel (harald.bartel@prozentor.de) reports a bug with a severity of 2 The lower the number the more severe it is. Short Description the operator "=" does not work for some SQL queries Long Description Version: PostgreSQL 7.1 System: Debian Woody, both Linux 2.2.14 and 2.4.3 For some SQL queries (for an example see below) the operator "=" on text does not work, that is, no rows are returned, althoughsome should be returned.In PostgreSQL 7.0.3 I avoided this problem by using the LIKE operator instead of the "=" operator.In PostgreSQL 7.1 this trick does not work anymore. But I found another way to avoid the problem by using SUBSTR. For example I used substr(text1,1,8)=substr(text2,1,8)instead of text1=text2 or text1 like text2, where 8 is the length of both texts. Sample Code # original query that should work: SELECT segment.nameenglischkurz, selektioneintrag_osi(transaktionh.selektion), wp.isin, unternehmen.namekurz FROM transaktionh,segment, wp, unternehmen, wpstamm WHERE wp.osi = selektioneintrag_osi(transaktionh.selektion) and wp.isin =wpstamm.isin and wpstamm.unternehmennr = unternehmen.unternehmennr and transaktionh.segmentnr = 43 and typnr = 3 and segment.segmentnr= transaktionh.segmentnr ORDER BY verkaufdt::datetime DESC; nameenglischkurz | selektioneintrag_osi | isin | namekurz ------------------+----------------------+------+---------- (0 rows) ###################################### query using substr: SELECT segment.nameenglischkurz, selektioneintrag_osi(transaktionh.selektion), wp.isin, unternehmen.namekurz FROM transaktionh,segment, wp, unternehmen, wpstamm WHERE substr(wp.osi,1,8) = substr(selektioneintrag_osi(transaktionh.selektion),1,8)and wp.isin = wpstamm.isin and wpstamm.unternehmennr = unternehmen.unternehmennrand transaktionh.segmentnr = 43 and typnr = 3 and segment.segmentnr = transaktionh.segmentnr ORDERBY verkaufdt::datetime DESC; nameenglischkurz | selektioneintrag_osi | isin | namekurz ------------------+----------------------+--------------+------------------ DAX | DE710000 | DE0007100000 | DaimlerChrysler DAX | DE604843 | DE0006048432 | Henkel ... No file was uploaded with this report
В списке pgsql-bugs по дате отправления: