Modified:
branches/5.2/CHANGES
branches/5.2/MySql.Data/Provider/Source/ISSchemaProvider.cs
branches/5.2/MySql.VisualStudio/MySqlDataObjectSupport.xml
branches/5.2/MySql.VisualStudio/MySqlDataViewSupport.xml
Log:
- fixed stored procedure parameter parsing when used inside server explorer. (bug #39252)
Modified: branches/5.2/CHANGES
===================================================================
--- branches/5.2/CHANGES 2008-09-05 13:57:04 UTC (rev 1403)
+++ branches/5.2/CHANGES 2008-09-05 15:34:43 UTC (rev 1404)
@@ -3,6 +3,7 @@
present at all (bug #39072)
- backported fix for lingering problem related to bug #37239. If two columns had the same name but
different case then an exception would be thrown.
+- fixed stored procedure parameter parsing when used inside server explorer. (bug #39252)
Version 5.2.3 - 8/14/08
- Increased the speed of MySqlDataReader.GetOrdinal dramatically by using a couple
Modified: branches/5.2/MySql.Data/Provider/Source/ISSchemaProvider.cs
===================================================================
--- branches/5.2/MySql.Data/Provider/Source/ISSchemaProvider.cs 2008-09-05 13:57:04 UTC (rev 1403)
+++ branches/5.2/MySql.Data/Provider/Source/ISSchemaProvider.cs 2008-09-05 15:34:43 UTC (rev 1404)
@@ -258,15 +258,7 @@
private DataTable GetParametersFromIS(string[] restrictions)
{
- StringBuilder sql = new StringBuilder(@"SELECT r.ROUTINE_TYPE, p.* FROM
- INFORMATION_SCHEMA.ROUTINES r, INFORMATION_SCHEMA.PARAMETERS p");
- // if the user is not trying to restrict by routine type then we
- // don't need the join. However we understand that since 'PARAMETERS'
- // isn't keyed to routines then we can't tell the difference between
- // procedures and functions with the same name
- if (restrictions == null || restrictions.Length < 4 ||
- restrictions[3] == null)
- sql = new StringBuilder("SELECT * FROM INFORMATION_SCHEMA.PARAMETERS");
+ StringBuilder sql = new StringBuilder(@"SELECT * FROM INFORMATION_SCHEMA.PARAMETERS");
string[] keys = new string[5];
keys[0] = "SPECIFIC_CATALOG";
@@ -313,6 +305,7 @@
dt.Columns.Add("CHARACTER_SET_NAME", typeof(string));
dt.Columns.Add("COLLATION_NAME", typeof(string));
dt.Columns.Add("DTD_IDENTIFIER", typeof(string));
+ dt.Columns.Add("ROUTINE_TYPE", typeof(string));
GetParametersFromShowCreate(dt, restrictions, routines);
return dt;
@@ -501,6 +494,7 @@
parameter["SPECIFIC_NAME"] = procedure["ROUTINE_NAME"];
parameter["PARAMETER_MODE"] = "IN";
parameter["ORDINAL_POSITION"] = 0;
+ parameter["ROUTINE_TYPE"] = procedure["ROUTINE_TYPE"];
}
/// <summary>
Modified: branches/5.2/MySql.VisualStudio/MySqlDataObjectSupport.xml
===================================================================
--- branches/5.2/MySql.VisualStudio/MySqlDataObjectSupport.xml 2008-09-05 13:57:04 UTC (rev 1403)
+++ branches/5.2/MySql.VisualStudio/MySqlDataObjectSupport.xml 2008-09-05 15:34:43 UTC (rev 1404)
@@ -663,17 +663,17 @@
<Concept name="FunctionParameter" restrictions="null, {Schema}, {StoredProcedure}, FUNCTION, {Name}" />
</Concepts>
<Identifier>
- <Part name="Database" itemName="ROUTINE_CATALOG">
+ <Part name="Database" itemName="SPECIFIC_CATALOG">
<Concepts>
<Concept name="Identifier0" />
</Concepts>
</Part>
- <Part name="Schema" itemName="ROUTINE_SCHEMA">
+ <Part name="Schema" itemName="SPECIFIC_SCHEMA">
<Concepts>
<Concept name="Identifier1" />
</Concepts>
</Part>
- <Part name="StoredProcedure" itemName="ROUTINE_NAME">
+ <Part name="StoredProcedure" itemName="SPECIFIC_NAME">
<Concepts>
<Concept name="Identifier2" />
</Concepts>
@@ -710,8 +710,7 @@
</Concept>
</Concepts>
</Property>
- <Property name="Flags" type="System.String" itemName="FLAGS"/>
- <Property name="CharacterSet" type="System.String" itemName="CHARACTER_SET" />
+ <Property name="CharacterSet" type="System.String" itemName="CHARACTER_SET_NAME" />
<Property name="Length" type="System.Int32" itemName="CHARACTER_MAXIMUM_LENGTH">
<Concepts>
<Concept name="Length"/>
@@ -732,16 +731,15 @@
</Concepts>
</Property>
<Property name="Mode" type="System.String" itemName="PARAMETER_MODE"/>
- <Property name="IsResult" type="System.String" itemName="IS_RESULT"/>
<AggregatedConcepts>
<!--
- In order to correctly identify the direction of a parameter as required
- by the Direction concept, we must use both the Mode and IsResult
- properties. Hence this is an aggregated concept.
+ In order to correctly identify the direction of a parameter as required
+ by the Direction concept, we must use both the Mode and Ordinal
+ properties. Hence this is an aggregated concept.
-->
- <AggregatedConcept name="Direction" fromData="IsResult, Mode">
+ <AggregatedConcept name="Direction" fromData="Ordinal,Mode">
<Conversion>
- <Calculate expr="IIF({0} = 'NO',IIF({1}='IN','IN',IIF({1}='OUT','OUT','IN/OUT')),'RETVAL')" type="System.String"/>
+ <Calculate expr="IIF({0} = '0','RETVAL',IIF({1}='IN','IN',IIF({1}='OUT','OUT','IN/OUT')))" type="System.String"/>
</Conversion>
</AggregatedConcept>
</AggregatedConcepts>
Modified: branches/5.2/MySql.VisualStudio/MySqlDataViewSupport.xml
===================================================================
--- branches/5.2/MySql.VisualStudio/MySqlDataViewSupport.xml 2008-09-05 13:57:04 UTC (rev 1403)
+++ branches/5.2/MySql.VisualStudio/MySqlDataViewSupport.xml 2008-09-05 15:34:43 UTC (rev 1404)
@@ -140,7 +140,6 @@
restrictions="{StoredProcedure.Database},{StoredProcedure.Schema},{StoredProcedure.Name},PROCEDURE"
hideWhen="False AND False">
<SelectionNode>
- <Icon when="{IsResult} = 'YES'" name="ReturnValue" />
<Icon when="{Mode} = 'IN'" name="InputParameter" />
<Icon when="{Mode} = 'OUT'" name="OutputParameter" />
<Icon when="{Mode} = 'INOUT'" name="OutputParameter" />
| Thread |
|---|
| • Connector/NET commit: r1404 - in branches/5.2: . MySql.Data/Provider/Source MySql.VisualStudio | rburnett | 5 Sep |