MyDDAS: Enhanced the MyDDAS interface Statistics capabilities

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1502 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
tiagosoares 2006-01-08 16:30:00 +00:00
parent f62f62537b
commit c0a9fa5cab
4 changed files with 67 additions and 57 deletions

View File

@ -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),

View File

@ -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),

View File

@ -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 ),

View File

@ -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
).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%