Update of /cvsroot/monetdb/sql/src/server
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv14489
Modified Files:
Tag: SQL_2-18
sql_mvc.mx
Log Message:
Remove the control for cascade triggers. The recursive triggers are user
responsability and not ours.
Correct the dependencies check for the functions with the same name.
DROP ALL f1;
This query will drop all the functions with the name f1 and also the
dependencies between them.
However, if there is dependencies to other objects the query is aborted.
Note: The same was implemented for procedures.
Index: sql_mvc.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_mvc.mx,v
retrieving revision 1.184.2.1
retrieving revision 1.184.2.2
diff -u -d -r1.184.2.1 -r1.184.2.2
--- sql_mvc.mx 8 Jun 2007 09:48:27 -0000 1.184.2.1
+++ sql_mvc.mx 8 Jun 2007 11:52:17 -0000 1.184.2.2
@@ -100,7 +100,6 @@
/* current stmt variables */
int type; /* query type */
int label; /* numbers for relational projection labels */
- list *called_triggers; /* protection against recursive triggers */
list *cascade_action; /* protection against recursive cascade actions
*/
int opt_stats[MAXSTATS];/* keep statistics about optimizer rewrites */
@@ -183,7 +182,7 @@
/*dependency control*/
extern void mvc_create_dependency(mvc *m, int id, int depend_id, int
depend_type);
extern void mvc_create_dependencies(mvc *m, list *id_l, sqlid depend_id, int
dep_type);
-extern int mvc_check_dependency(mvc * m, int id, int type);
+extern int mvc_check_dependency(mvc * m, int id, int type, list *ignore_ids);
extern int mvc_connect_catalog(mvc *m, char *server, int port, char *db, char
*db_alias, char *user, char *passwd, char *lng);
extern int mvc_disconnect_catalog(mvc *m, char *db_alias);
extern int mvc_disconnect_catalog_ALL(mvc *m);
@@ -563,7 +562,6 @@
m->cache = 1;
m->label = 0;
- m->called_triggers = NULL;
m->cascade_action = NULL;
for(i=0;i<MAXSTATS;i++)
m->opt_stats[i] = 0;
@@ -1204,7 +1202,7 @@
}
int
-mvc_check_dependency(mvc * m, int id, int type)
+mvc_check_dependency(mvc * m, int id, int type, list *ignore_ids)
{
list *dep_list = NULL;
@@ -1214,14 +1212,24 @@
switch(type) {
- case OWNER_DEPENDENCY : dep_list =
sql_trans_owner_schema_dependencies(m->session->tr, id);
+ case OWNER_DEPENDENCY :
+ dep_list =
sql_trans_owner_schema_dependencies(m->session->tr, id);
break;
- case SCHEMA_DEPENDENCY : dep_list =
sql_trans_schema_user_dependencies(m->session->tr, id);
+ case SCHEMA_DEPENDENCY :
+ dep_list =
sql_trans_schema_user_dependencies(m->session->tr, id);
break;
- case TABLE_DEPENDENCY : dep_list =
sql_trans_get_dependencies(m->session->tr, id, TABLE_DEPENDENCY);
- case VIEW_DEPENDENCY : dep_list =
sql_trans_get_dependencies(m->session->tr, id, TABLE_DEPENDENCY);
+ case TABLE_DEPENDENCY :
+ dep_list =
sql_trans_get_dependencies(m->session->tr, id, TABLE_DEPENDENCY, NULL);
break;
- default: dep_list = sql_trans_get_dependencies(m->session->tr,
id, COLUMN_DEPENDENCY);
+ case VIEW_DEPENDENCY :
+ dep_list =
sql_trans_get_dependencies(m->session->tr, id, TABLE_DEPENDENCY, NULL);
+ break;
+ case FUNC_DEPENDENCY :
+ case PROC_DEPENDENCY :
+ dep_list =
sql_trans_get_dependencies(m->session->tr, id, FUNC_DEPENDENCY, ignore_ids);
+ break;
+ default:
+ dep_list =
sql_trans_get_dependencies(m->session->tr, id, COLUMN_DEPENDENCY, NULL);
}
if ( list_length(dep_list) >= 2 ) {
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins