Modified:
trunk/TestSuite/GetSchemaTests.cs
trunk/mysqlclient/core/ISSchemaProvider.cs
trunk/mysqlclient/core/SchemaProvider.cs
Log:
1. Added test for the Triggers Collections
2. Reversed the last two restrictions on the triggers collection
Modified: trunk/TestSuite/GetSchemaTests.cs
===================================================================
--- trunk/TestSuite/GetSchemaTests.cs 2006-12-08 01:13:25 UTC (rev 485)
+++ trunk/TestSuite/GetSchemaTests.cs 2006-12-08 20:25:47 UTC (rev 486)
@@ -479,6 +479,43 @@
Assert.AreEqual("customer", row["REFERENCED_TABLE_NAME"]);
Assert.AreEqual("id", row["REFERENCED_COLUMN_NAME"]);
}
-
+
+ [Category("5.0")]
+ [Test]
+ public void Triggers()
+ {
+ try
+ {
+ execSQL("DROP TRIGGER trigger1");
+ }
+ catch (Exception) { }
+
+ execSQL("DROP TABLE IF EXISTS test2");
+ execSQL("DROP TABLE IF EXISTS test1");
+ execSQL("CREATE TABLE test1 (id int)");
+ execSQL("CREATE TABLE test2 (count int)");
+ execSQL("INSERT INTO test2 VALUES (0)");
+ execSQL("CREATE TRIGGER trigger1 AFTER INSERT ON test1 FOR EACH ROW BEGIN " +
+ "UPDATE test2 SET count = count+1; END");
+
+ try
+ {
+ string[] restrictions = new string[4];
+ restrictions[1] = "test";
+ restrictions[2] = "test1";
+ DataTable dt = conn.GetSchema("Triggers", restrictions);
+ Assert.IsTrue(dt.Rows.Count == 1);
+ Assert.AreEqual("Triggers", dt.TableName);
+ Assert.AreEqual("trigger1", dt.Rows[0]["TRIGGER_NAME"]);
+ Assert.AreEqual("INSERT", dt.Rows[0]["EVENT_MANIPULATION"]);
+ Assert.AreEqual("test1", dt.Rows[0]["EVENT_OBJECT_TABLE"]);
+ Assert.AreEqual("ROW", dt.Rows[0]["ACTION_ORIENTATION"]);
+ Assert.AreEqual("AFTER", dt.Rows[0]["ACTION_TIMING"]);
+ }
+ catch (Exception ex)
+ {
+ Assert.Fail(ex.Message);
+ }
+ }
}
}
Modified: trunk/mysqlclient/core/ISSchemaProvider.cs
===================================================================
--- trunk/mysqlclient/core/ISSchemaProvider.cs 2006-12-08 01:13:25 UTC (rev 485)
+++ trunk/mysqlclient/core/ISSchemaProvider.cs 2006-12-08 20:25:47 UTC (rev 486)
@@ -167,9 +167,10 @@
string[] keys = new string[4];
keys[0] = "TRIGGER_CATALOG";
keys[1] = "TRIGGER_SCHEMA";
- keys[2] = "TRIGGER_NAME";
- keys[3] = "EVENT_OBJECT_TABLE";
+ keys[2] = "EVENT_OBJECT_TABLE";
+ keys[3] = "TRIGGER_NAME";
DataTable dt = Query("TRIGGERS", null, keys, restrictions);
+ dt.TableName = "Triggers";
return dt;
}
Modified: trunk/mysqlclient/core/SchemaProvider.cs
===================================================================
--- trunk/mysqlclient/core/SchemaProvider.cs 2006-12-08 01:13:25 UTC (rev 485)
+++ trunk/mysqlclient/core/SchemaProvider.cs 2006-12-08 20:25:47 UTC (rev 486)
@@ -348,6 +348,7 @@
dt.Columns.Add("TABLE_NAME", typeof(string));
dt.Columns.Add("COLUMN_NAME", typeof(string));
dt.Columns.Add("ORDINAL_POSITION", typeof(int));
+ dt.Columns.Add("REFERENCED_TABLE_CATALOG", typeof(string));
dt.Columns.Add("REFERENCED_TABLE_SCHEMA", typeof(string));
dt.Columns.Add("REFERENCED_TABLE_NAME", typeof(string));
dt.Columns.Add("REFERENCED_COLUMN_NAME", typeof(string));
@@ -477,6 +478,7 @@
row["TABLE_NAME"] = table["TABLE_NAME"];
row["COLUMN_NAME"] = CleanSymbol(fkColumn.Trim());
row["ORDINAL_POSITION"] = pos;
+ row["REFERENCED_TABLE_CATALOG"] = null;
row["REFERENCED_TABLE_SCHEMA"] = refSchema;
row["REFERENCED_TABLE_NAME"] = refTable;
row["REFERENCED_COLUMN_NAME"] = CleanSymbol(refColumns[pos++].Trim());
| Thread |
|---|
| • Connector/NET commit: r486 - in trunk: TestSuite mysqlclient/core | rburnett | 8 Dec |