SQL generated for Contains may not work as expected
---------------------------------------------------
Key: DNET-466
URL: http://tracker.firebirdsql.org/browse/DNET-466
Project: .NET Data provider
Issue Type: Improvement
Components: Entity Framework support
Affects Versions: 2.7.7
Environment: Firebird 2.5.2
Reporter: Dave
Assignee: Jiri Cincura
Priority: Minor
I have a table :
create table SearchTest ( val varchar(20) );
which has two rows:
insert into SearchTest ( val ) values ('one');
insert into SearchTest ( val ) values ('three');
When I try to select all rows where column 'val' contains either 'one' or
'hree':
var a = from b in TestEntities.SEARCHTESTs
from c in new []{ "one", "hree" }
where b.VAL.Contains(c)
select b;
I get a query like this:
SELECT
"C"."VAL" AS "VAL"
FROM "SEARCHTEST" AS "C"
CROSS JOIN (SELECT
_UTF8 X'4F4E45' AS "C1"
FROM ( SELECT 1 AS X FROM RDB$DATABASE) AS "D"
UNION ALL
SELECT
_UTF8 X'48524545' AS "C1"
FROM ( SELECT 1 AS X FROM RDB$DATABASE) AS "E") AS "F"
WHERE ((POSITION("F"."C1", "C"."VAL")) > 0)
The result of this query does not include the row containing 'one' because
"F"."C1" is of type CHAR(4), and cannot match a three character value.
CASTing the literals to VARCHAR results in the expected behavior.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_nov
_______________________________________________
Firebird-net-provider mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider