<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://code.msdn.microsoft.com/rss.xsl"?><rss version="2.0"><channel><title>EFOracleProvider Work Item Rss Feed</title><link>http://code.msdn.microsoft.com/EFOracleProvider/WorkItem/List.aspx</link><description>EFOracleProvider Work Item Rss Description</description><item><title>CREATED ISSUE: Top Values query is incorrect</title><link>http://code.msdn.microsoft.com/EFOracleProvider/WorkItem/View.aspx?WorkItemId=3</link><description>This query pattern applies the row limiting before the ORDER BY, returning 10 random rows and then ordering them, instead of ordering the rows before selecting the top rows.&lt;br /&gt;&lt;br /&gt;This is wrong&amp;#58;&lt;br /&gt;&lt;br /&gt;select&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;Address&amp;#34; AS &amp;#34;Address&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;City&amp;#34; AS &amp;#34;City&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;Region&amp;#34; AS &amp;#34;Region&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;PostalCode&amp;#34; AS &amp;#34;PostalCode&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;Country&amp;#34; AS &amp;#34;Country&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;Phone&amp;#34; AS &amp;#34;Phone&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;Fax&amp;#34; AS &amp;#34;Fax&amp;#34;&lt;br /&gt;FROM &amp;#40; SELECT&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;CustomerID&amp;#34; AS &amp;#34;CustomerID&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;CompanyName&amp;#34; AS &amp;#34;CompanyName&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;ContactName&amp;#34; AS &amp;#34;ContactName&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;ContactTitle&amp;#34; AS &amp;#34;ContactTitle&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;Address&amp;#34; AS &amp;#34;Address&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;City&amp;#34; AS &amp;#34;City&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;Region&amp;#34; AS &amp;#34;Region&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;PostalCode&amp;#34; AS &amp;#34;PostalCode&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;Country&amp;#34; AS &amp;#34;Country&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;Phone&amp;#34; AS &amp;#34;Phone&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;Fax&amp;#34; AS &amp;#34;Fax&amp;#34;,&lt;br /&gt;        1 AS &amp;#34;C1&amp;#34;&lt;br /&gt;        FROM &amp;#34;Customers&amp;#34; &amp;#34;Extent1&amp;#34;&lt;br /&gt;&amp;#41;  &amp;#34;Project1&amp;#34;&lt;br /&gt;WHERE &amp;#40;ROWNUM &amp;#60;&amp;#61; &amp;#40;10&amp;#41; &amp;#41;&lt;br /&gt;ORDER BY &amp;#34;Project1&amp;#34;.&amp;#34;Address&amp;#34; ASC&lt;br /&gt;&lt;br /&gt;the right pattern is&amp;#58;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;Address&amp;#34; AS &amp;#34;Address&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;City&amp;#34; AS &amp;#34;City&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;Region&amp;#34; AS &amp;#34;Region&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;PostalCode&amp;#34; AS &amp;#34;PostalCode&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;Country&amp;#34; AS &amp;#34;Country&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;Phone&amp;#34; AS &amp;#34;Phone&amp;#34;,&lt;br /&gt;&amp;#34;Project1&amp;#34;.&amp;#34;Fax&amp;#34; AS &amp;#34;Fax&amp;#34;&lt;br /&gt;FROM &amp;#40; SELECT&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;CustomerID&amp;#34; AS &amp;#34;CustomerID&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;CompanyName&amp;#34; AS &amp;#34;CompanyName&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;ContactName&amp;#34; AS &amp;#34;ContactName&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;ContactTitle&amp;#34; AS &amp;#34;ContactTitle&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;Address&amp;#34; AS &amp;#34;Address&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;City&amp;#34; AS &amp;#34;City&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;Region&amp;#34; AS &amp;#34;Region&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;PostalCode&amp;#34; AS &amp;#34;PostalCode&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;Country&amp;#34; AS &amp;#34;Country&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;Phone&amp;#34; AS &amp;#34;Phone&amp;#34;,&lt;br /&gt;        &amp;#34;Extent1&amp;#34;.&amp;#34;Fax&amp;#34; AS &amp;#34;Fax&amp;#34;,&lt;br /&gt;        1 AS &amp;#34;C1&amp;#34;&lt;br /&gt;        FROM &amp;#34;Customers&amp;#34; &amp;#34;Extent1&amp;#34;&lt;br /&gt;        ORDER BY &amp;#34;Extent1&amp;#34;.&amp;#34;Address&amp;#34; ASC&lt;br /&gt;&amp;#41;  &amp;#34;Project1&amp;#34;&lt;br /&gt;WHERE &amp;#40;ROWNUM &amp;#60;&amp;#61; &amp;#40;10&amp;#41; &amp;#41;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;See, eg http&amp;#58;&amp;#47;&amp;#47;www.oracle.com&amp;#47;technology&amp;#47;oramag&amp;#47;oracle&amp;#47;06-sep&amp;#47;o56asktom.html&lt;br /&gt;for a discussion of this issue.&lt;br /&gt;&lt;br /&gt;David &amp;#40;dbrowne_at_microsoft&amp;#41;&lt;br /&gt;</description><author>dbrowne</author><pubDate>Thu, 26 Feb 2009 18:22:43 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Top Values query is incorrect 20090226P</guid></item><item><title>CREATED ISSUE: Inappropriate use of Quoted Identifiers</title><link>http://code.msdn.microsoft.com/EFOracleProvider/WorkItem/View.aspx?WorkItemId=2</link><description>Oracle is always case-sensitive, including the metadata catalogs.  To compensate for this Oracle stores ideintifiers in upper case, and for non-quoted identifiers, Oracle converts the identifier to all caps for compilation.  For quoted identifiers, oracle requires exact case matching for objects.  You can, for instance have a table named &amp;#34;Orders&amp;#34; and one named ORDERS.  the DDL &amp;#34;CREATE TABLE Orders ...&amp;#34; creates a different table than the DDL &amp;#34;CREATE TABLE &amp;#34;Orders&amp;#34; ...&amp;#34;.  Using quoted identifiers and mixed case identifiers is pretty tricky in Oracle, and is very rarely done.  &lt;br /&gt;&lt;br /&gt;Typically people use non-quoted identifiers which behave like case-insensitive identifiers because Oracle silently upper cases the identifiers and the comparisons.&lt;br /&gt;&lt;br /&gt;First the sample should follow Oracle best practices and not use quoted identifiers for the object names.  Second the EF code should not use quoted identifiers in the SQL by default.  &lt;br /&gt;&lt;br /&gt;David &amp;#40;dbrowne_at_microsoft.com&amp;#41;&lt;br /&gt;</description><author>dbrowne</author><pubDate>Thu, 26 Feb 2009 17:53:59 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Inappropriate use of Quoted Identifiers 20090226P</guid></item><item><title>CREATED ISSUE: INSTR wrong argument order</title><link>http://code.msdn.microsoft.com/EFOracleProvider/WorkItem/View.aspx?WorkItemId=1</link><description>When you use StringProperty.StartsWith&amp;#40;&amp;#34;xxx&amp;#34;&amp;#41; in the where clause, it generates the a wrong sql sentence&amp;#58;&lt;br /&gt;&lt;br /&gt;INSTR &amp;#40;&amp;#39;xxx&amp;#39;,  &amp;#34;Extent1&amp;#34;.&amp;#34;StringProperty&amp;#34;&amp;#41; &amp;#61; 1 &lt;br /&gt;The problem is that the INSTR sql function in oracle suspects the arguments in the opposite order, so the generated sql condition should be INSTR &amp;#40;&amp;#34;Extent1&amp;#34;.&amp;#34;StringProperty&amp;#34;, &amp;#39;xxx&amp;#39;&amp;#41; &amp;#61; 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description><author>szunyog</author><pubDate>Sat, 18 Oct 2008 13:13:46 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: INSTR wrong argument order 20081018P</guid></item></channel></rss>