diff --git a/library/MYDDAS/myddas.yap b/library/MYDDAS/myddas.yap index ab985dab2..cbdfda087 100644 --- a/library/MYDDAS/myddas.yap +++ b/library/MYDDAS/myddas.yap @@ -180,7 +180,8 @@ db_is_database_predicate(PredName,Arity,Module):- % :- set_value(db_myddas_stats_count,0). db_stats(Connection,List):- - NumberOfStats = 6, + '$error_checks'(db_stats(Connection,List)), + NumberOfStats = 9, '$make_a_list'(NumberOfStats,List), ( var(Connection) -> c_db_stats(0,List) @@ -188,9 +189,9 @@ db_stats(Connection,List):- get_value(Connection,Conn), c_db_stats(Conn,List) ), - write('MYDDAS'),nl,write(List),nl, + write('MYDDAS: '),nl,write(List),nl, get_value(db_myddas_stats_count,Value), - write(Value),nl. + write('Stats Counts '),write(Value),nl. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -269,7 +270,7 @@ db_create_table(Connection,TableName,FieldsInf):- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % db_export_view/4 % TODO Test with ODBC -% +% db_export_view(Connection,TableViewName,SQLorDbGoal,FieldsInf):- '$error_checks'(db_export_view(Connection,TableViewName,SQLorDbGoal,FieldsInf)), get_value(Connection,Con), diff --git a/library/MYDDAS/myddas_assert_predicates.yap b/library/MYDDAS/myddas_assert_predicates.yap index 13c908a93..3a4b6dc56 100644 --- a/library/MYDDAS/myddas_assert_predicates.yap +++ b/library/MYDDAS/myddas_assert_predicates.yap @@ -93,35 +93,44 @@ db_import(Connection,RelationName,PredName) :- '$copy_term_nv'(P,[],G,_), %generate the SQL query - translate(G,G,Code), - queries_atom(Code,SQL), + %translate(G,G,Code), + %queries_atom(Code,SQL), + M=myddas_assert_predicates, %build PredName clause ( ConType == mysql -> - Assert =..[':-',P,','(myddas_assert_predicates:'$build_query'(0,SQL,Code,LA,FinalSQL), - ','(myddas_assert_predicates:db_my_result_set(Mode), - ','(myddas_assert_predicates:'$write_or_not'(FinalSQL), - ','(myddas_assert_predicates:c_db_my_query(FinalSQL,ResultSet,Con,Mode), - ','(!,myddas_assert_predicates:c_db_my_row(ResultSet,Arity,LA))))))] + + Assert =..[':-',P,','(M:translate(G,G,Code), + ','(M:queries_atom(Code,FinalSQL), + ','(M:db_my_result_set(Mode), + ','(M:'$write_or_not'(FinalSQL), + ','(M:c_db_my_query(FinalSQL,ResultSet,Con,Mode), + ','(!,M:c_db_my_row(ResultSet,Arity,LA)))))))] + + % Assert =..[':-',P,','(M:'$build_query'(0,SQL,Code,LA,FinalSQL), +% ','(M:db_my_result_set(Mode), +% ','(M:'$write_or_not'(FinalSQL), +% ','(M:c_db_my_query(FinalSQL,ResultSet,Con,Mode), +% ','(!,M:c_db_my_row(ResultSet,Arity,LA))))))] % Assert =..[':-',P,','(get_value(db_myddas_stats_count,Number), % ','(statistics(cputime,TimeI), -% ','(myddas_assert_predicates:'$build_query'(0,SQL,Code,LA,FinalSQL), -% ','(myddas_assert_predicates:db_my_result_set(Mode), -% ','(myddas_assert_predicates:'$write_or_not'(FinalSQL), -% ','(myddas_assert_predicates:c_db_my_query(FinalSQL,ResultSet,Con,Mode), +% ','(M:'$build_query'(0,SQL,Code,LA,FinalSQL), +% ','(M:db_my_result_set(Mode), +% ','(M:'$write_or_not'(FinalSQL), +% ','(M:c_db_my_query(FinalSQL,ResultSet,Con,Mode), % ','(statistics(cputime,TimeF), % ','(Temp is TimeF - TimeI, % ','(Temp2 is Temp + Number, % ','(set_value(db_myddas_stats_count,Temp2), -% ','(!,myddas_assert_predicates:c_db_my_row(ResultSet,Arity,LA))))))))))))] +% ','(!,M:c_db_my_row(ResultSet,Arity,LA))))))))))))] ; - - Assert =..[':-',P,','(myddas_assert_predicates:'$build_query'(0,SQL,Code,LA,FinalSQL), - ','(myddas_assert_predicates:'$make_a_list'(Arity,BindList), - ','(myddas_assert_predicates:c_db_odbc_query(FinalSQL,ResultSet,Arity,BindList,Connection), - ','(myddas_assert_predicates:'$write_or_not'(FinalSQL), - ','(!,myddas_assert_predicates:c_db_odbc_row(ResultSet,BindList,LA))))))] + '$make_a_list'(Arity,BindList), + Assert =..[':-',P,','(M:translate(G,G,Code), + ','(M:queries_atom(Code,FinalSQL), + ','(M:c_db_odbc_query(FinalSQL,ResultSet,Arity,BindList,Connection), + ','(M:'$write_or_not'(FinalSQL), + ','(!,M:c_db_odbc_row(ResultSet,BindList,LA))))))] ), assert(Module:Assert), @@ -147,30 +156,29 @@ db_view(Connection,PredName,DbGoal) :- % This copy_term is done to prevent the unification % with top-level variables A='var('A')' error copy_term((PredName,DbGoal),(CopyView,CopyGoal)), - translate(CopyView,CopyGoal,Code), - queries_atom(Code,SQL), - - % checks if the WHERE commend of SQL exists in the string - '$where_exists'(SQL,Flag), '$make_list_of_args'(1,Arity,NewName,LA), + M=myddas_assert_predicates, c_db_connection_type(Con,ConType), + % build view clause ( ConType == mysql -> Assert =..[':-',NewName, - ','(myddas_assert_predicates:'$build_query'(Flag,SQL,Code,LA,FinalSQL), - ','(myddas_assert_predicates:db_my_result_set(Mode), - ','(myddas_assert_predicates:'$write_or_not'(FinalSQL), - ','(myddas_assert_predicates:c_db_my_query(FinalSQL,ResultSet,Con,Mode), - ','(!,myddas_assert_predicates:c_db_my_row(ResultSet,Arity,LA))))))] + ','(M:translate(CopyView,CopyGoal,Code), + ','(M:queries_atom(Code,FinalSQL), + ','(M:db_my_result_set(Mode), + ','(M:'$write_or_not'(FinalSQL), + ','(M:c_db_my_query(FinalSQL,ResultSet,Con,Mode), + ','(!,M:c_db_my_row(ResultSet,Arity,LA)))))))] ; Assert =..[':-',NewName, - ','(myddas_assert_predicates:'$build_query'(Flag,SQL,Code,LA,FinalSQL), - ','(myddas_assert_predicates:'$make_a_list'(Arity,BindList), - ','(myddas_assert_predicates:'$write_or_not'(FinalSQL), - ','(myddas_assert_predicates:c_db_odbc_query(FinalSQL,ResultSet,Arity,BindList,Con), - ','(!,myddas_assert_predicates:c_db_odbc_row(ResultSet,BindList,LA))))))] + ','(M:translate(CopyView,CopyGoal,Code), + ','(M:queries_atom(Code,FinalSQL), + ','(M:'$make_a_list'(Arity,BindList), + ','(M:'$write_or_not'(FinalSQL), + ','(M:c_db_odbc_query(FinalSQL,ResultSet,Arity,BindList,Con), + ','(!,M:c_db_odbc_row(ResultSet,BindList,LA)))))))] ), assert(Module:Assert), diff --git a/library/MYDDAS/myddas_errors.yap b/library/MYDDAS/myddas_errors.yap index a47fb4946..dc4fa0999 100644 --- a/library/MYDDAS/myddas_errors.yap +++ b/library/MYDDAS/myddas_errors.yap @@ -28,6 +28,8 @@ is_list/1 ]). +'$error_checks'(db_stats(_,List)):-!, + var(List). '$error_checks'(db_export_view(Connection,TableViewName,SQLorDbGoal,FieldsInf)):-!, atom(Connection), ( atom(TableViewName) -> atom(SQLorDbGoal) ; true ), diff --git a/library/MYDDAS/myddas_test_predicates.yap b/library/MYDDAS/myddas_test_predicates.yap index 5736db2a3..caf18574c 100644 --- a/library/MYDDAS/myddas_test_predicates.yap +++ b/library/MYDDAS/myddas_test_predicates.yap @@ -1,14 +1,12 @@ :- module(myddas_test_predicates,[ % Tests or Debug Predicates %db_my_delete/2, - db_create_table/3, - db_export_view/4, db_assert_view/4, db_my_insert_test/2, db_my_update/3, - db_my_import_query_normal/3, + db_my_import_michel/3, db_view_original/3, % DEBUG ONLY - db_my_ilpview/4 + db_ilpview/4 ]). @@ -45,11 +43,6 @@ db_assert_view(ViewName,SQLorDbGoal,FieldsInf,Connection):- db_my_import(TableName,TableName,Connection). - - - - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % db_my_insert/2 % @@ -109,7 +102,7 @@ db_my_update(UpdateList,Relation,Connection):- % db_my_import_michel/3 % % -db_my_import_query_normal(RelationName,PredName,Connection) :- +db_my_import_michel(RelationName,PredName,Connection) :- '$error_checks'(db_my_import(RelationName,PredName,Connection)), % get connection id based on given atom '$get_value'(Connection,Conn), @@ -278,24 +271,30 @@ db_my_import_query_normal(RelationName,PredName,Connection) :- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% db_my_ilpview/4 +% db_ilpview/4 % % -db_my_ilpview(LA,ViewName,DbGoal,Connection):- - '$get_value'(Connection,Conn), +db_ilpview(Connection,LA,ViewName,DbGoal):- + functor(ViewName,PredName,Arity), functor(NewName,PredName,Arity), translate(ViewName,DbGoal,Code), queries_atom(Code,SQL), + % build arg list for db_my_row/2 '$make_list_of_args'(1,Arity,NewName,LA), - % checks if the WHERE commend of SQL exists in the string - '$where_exists'(SQL,Flag), - '$build_query'(Flag,SQL,Code,LA,FinalSQL), - db_my_result_set(Mode), - '$write_or_not'(FinalSQL), - c_db_my_query(FinalSQL,ResultSet,Conn,Mode), - !,c_db_my_row(ResultSet,Arity,LA). + + get_value(Connection,Con), + c_db_connection_type(Con,ConType), + '$write_or_not'(SQL), + ( ConType == mysql -> + db_my_result_set(Mode), + c_db_my_query(SQL,ResultSet,Con,Mode), + !,c_db_my_row(ResultSet,Arity,LA) + ; + true + ). + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%