droid vs myddas
This commit is contained in:
parent
0f1eaa827a
commit
cab11f5205
@ -620,7 +620,6 @@ add_definitions(-DMYDDAS=1 -DEMBEDDED_MYDDAS=1 -DMYDDAS_SQLITE3=1 -DEMBEDDED_SQL
|
|||||||
else()
|
else()
|
||||||
add_definitions(-DMYDDAS=1 -DEMBEDDED_MYDDAS=1 -DMYDDAS_SQLITE3=1 )
|
add_definitions(-DMYDDAS=1 -DEMBEDDED_MYDDAS=1 -DMYDDAS_SQLITE3=1 )
|
||||||
|
|
||||||
endif()
|
|
||||||
if (MYSQL_FOUND)
|
if (MYSQL_FOUND)
|
||||||
add_definitions( -DMYDDAS_MYSQL=1)
|
add_definitions( -DMYDDAS_MYSQL=1)
|
||||||
endif ()
|
endif ()
|
||||||
@ -636,6 +635,7 @@ endif()
|
|||||||
# we use the nice UTF-8 package
|
# we use the nice UTF-8 package
|
||||||
#available at the Julia project
|
#available at the Julia project
|
||||||
|
|
||||||
|
endif()
|
||||||
|
|
||||||
add_subDIRECTORY( packages/myddas )
|
add_subDIRECTORY( packages/myddas )
|
||||||
add_subDIRECTORY( packages/clpqr )
|
add_subDIRECTORY( packages/clpqr )
|
||||||
|
@ -31,10 +31,15 @@ set(MYDDAS_UTIL_SOURCES
|
|||||||
|
|
||||||
add_subdirectory(sqlite3)
|
add_subdirectory(sqlite3)
|
||||||
|
|
||||||
|
if(MYSQL_FOUND)
|
||||||
add_subdirectory(mysql)
|
add_subdirectory(mysql)
|
||||||
|
endif()
|
||||||
|
if (ODBC_FOUND)
|
||||||
add_subdirectory(odbc)
|
add_subdirectory(odbc)
|
||||||
|
endif()
|
||||||
|
if (POSTGRES_FOUND)
|
||||||
add_subdirectory(postgres)
|
add_subdirectory(postgres)
|
||||||
|
endif()
|
||||||
set(CXX_SWIG_OUTDIR ${CMAKE_BINARY_DIR}/packages/swig/android)
|
set(CXX_SWIG_OUTDIR ${CMAKE_BINARY_DIR}/packages/swig/android)
|
||||||
|
|
||||||
add_component(myddas
|
add_component(myddas
|
||||||
@ -57,3 +62,5 @@ MY_set_target_properties(myddas PROPERTIES
|
|||||||
cmake_dependent_option(USE_MYDDAS_Stats
|
cmake_dependent_option(USE_MYDDAS_Stats
|
||||||
"enable the MYDDAS library statistics support" OFF
|
"enable the MYDDAS library statistics support" OFF
|
||||||
USE_MYDDAS OFF)
|
USE_MYDDAS OFF)
|
||||||
|
|
||||||
|
add_dependencies(myddas MYDDAS_PL)
|
@ -130,22 +130,32 @@ static Int c_db_connection_type(USES_REGS1) {
|
|||||||
|
|
||||||
Int *con = (Int *)IntegerOfTerm(arg_con);
|
Int *con = (Int *)IntegerOfTerm(arg_con);
|
||||||
MYDDAS_API type = myddas_util_connection_type(con);
|
MYDDAS_API type = myddas_util_connection_type(con);
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
#if MYDDAS_MYSQL
|
||||||
case API_MYSQL:
|
case API_MYSQL:
|
||||||
/* MYSQL Connection */
|
/* MYSQL Connection */
|
||||||
return Yap_unify(arg_type, MkAtomTerm(Yap_LookupAtom("mysql")));
|
return Yap_unify(arg_type, MkAtomTerm(Yap_LookupAtom("mysql")));
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_ODBC
|
||||||
case API_ODBC:
|
case API_ODBC:
|
||||||
/* ODBC Connection */
|
/* ODBC Connection */
|
||||||
return Yap_unify(arg_type, MkAtomTerm(Yap_LookupAtom("odbc")));
|
return Yap_unify(arg_type, MkAtomTerm(Yap_LookupAtom("odbc")));
|
||||||
|
#endif
|
||||||
|
#if USE_MYDDAS_SQLITE3
|
||||||
case API_SQLITE3:
|
case API_SQLITE3:
|
||||||
/* SQLITE3 Connection */
|
/* SQLITE3 Connection */
|
||||||
return Yap_unify(arg_type, MkAtomTerm(Yap_LookupAtom("sqlite3")));
|
return Yap_unify(arg_type, MkAtomTerm(Yap_LookupAtom("sqlite3")));
|
||||||
case API_POSTGRES:
|
#endif
|
||||||
|
#if MYDDAS_POSTGRES
|
||||||
|
case API_POSTGRES:
|
||||||
/* SQLITE3 Connection */
|
/* SQLITE3 Connection */
|
||||||
return Yap_unify(arg_type, MkAtomTerm(Yap_LookupAtom("postgres")));
|
return Yap_unify(arg_type, MkAtomTerm(Yap_LookupAtom("postgres")));
|
||||||
|
|
||||||
|
#endif
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
}
|
}
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* db_add_preds: PredName * Arity * Module * Connection*/
|
/* db_add_preds: PredName * Arity * Module * Connection*/
|
||||||
|
@ -1,17 +1,35 @@
|
|||||||
set(MYDDAS_YPP
|
set(MYDDAS_YPP
|
||||||
myddas.ypp
|
myddas_core.ypp
|
||||||
myddas_assert_predicates.ypp
|
myddas_assert_predicates.ypp
|
||||||
myddas_top_level.ypp
|
myddas_top_level.ypp
|
||||||
myddas_errors.ypp
|
myddas_errors.ypp
|
||||||
myddas_prolog2sql.ypp
|
myddas_prolog2sql.ypp
|
||||||
myddas_mysql.ypp
|
|
||||||
myddas_util_predicates.ypp
|
myddas_util_predicates.ypp
|
||||||
myddas_prolog2sql_optimizer.ypp)
|
myddas_prolog2sql_optimizer.ypp)
|
||||||
|
if (FOUND_MYSQL)
|
||||||
|
list(APPEND MYDDAS_YPP myddas_assert_predicates.ypp)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
get_property(MYDDAS_FLAGS GLOBAL PROPERTY COMPILE_DEFINITIONS)
|
||||||
|
|
||||||
set(MYDDAS_DRIVERS
|
set(MYDDAS_DRIVERS
|
||||||
myddas_driver.ypp
|
myddas_driver.ypp
|
||||||
)
|
)
|
||||||
set(MYDDAS_DBMS sqlite3 postgres odbc)
|
set(MYDDAS_DBMS sqlite3)
|
||||||
|
set(MYDDAS_FLAGS ${MYDDAS_FLAGS};-DMYDDAS_SQLITE3=1)
|
||||||
|
if (POSTGRES_FOUND)
|
||||||
|
list(APPEND MYDDAS_DBMS postgres)
|
||||||
|
set(MYDDAS_FLAGS ${MYDDAS_FLAGS};-DMYDDAS_POSTGRES=1)
|
||||||
|
endif()
|
||||||
|
if (ODBC_FOUND)
|
||||||
|
set(MYDDAS_FLAGS ${MYDDAS_FLAGS};-DMYDDAS_ODBC=1)
|
||||||
|
list(APPEND MYDDAS_DBMS odbc)
|
||||||
|
endif()
|
||||||
|
if (MYSQL_FOUND)
|
||||||
|
set(MYDDAS_FLAGS ${MYDDAS_FLAGS};-DMYDDAS_MYSQL=1)
|
||||||
|
list(APPEND MYDDAS_DBMS mysql)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if (ANDROID)
|
if (ANDROID)
|
||||||
set (MYDDAS_PL_OUTDIR ${CMAKE_SOURCE_DIR}/../yaplib/src/generated/assets/Yap/myddas )
|
set (MYDDAS_PL_OUTDIR ${CMAKE_SOURCE_DIR}/../yaplib/src/generated/assets/Yap/myddas )
|
||||||
@ -20,23 +38,24 @@ if (ANDROID)
|
|||||||
else()
|
else()
|
||||||
set (MYDDAS_PL_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
|
set (MYDDAS_PL_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
endif()
|
endif()
|
||||||
get_property(MYDDAS_FLAGS GLOBAL PROPERTY COMPILE_DEFINITIONS)
|
|
||||||
foreach (filename ${MYDDAS_YPP})
|
foreach (filename ${MYDDAS_YPP})
|
||||||
get_filename_component(base ${filename} NAME_WE)
|
get_filename_component(base ${filename} NAME_WE)
|
||||||
set(base_abs ${MYDDAS_PL_OUTDIR}/${base})
|
set(base_abs ${MYDDAS_PL_OUTDIR}/${base})
|
||||||
set(outfile ${base_abs}.yap)
|
set(outfile ${base_abs}.yap)
|
||||||
list(APPEND MYDDAS_YAP_FILES ${outfile})
|
list(APPEND MYDDAS_YAP_FILES ${outfile})
|
||||||
execute_process(
|
add_custom_command(OUTPUT ${outfile}
|
||||||
COMMAND ${CMAKE_C_COMPILER} ${MYDDAS_FLAGS} -x c -E -P -w ${CMAKE_CURRENT_SOURCE_DIR}/${filename} -o ${outfile}
|
COMMAND ${CMAKE_C_COMPILER} ${MYDDAS_FLAGS} -x c -E -P -w ${CMAKE_CURRENT_SOURCE_DIR}/${filename} -o ${outfile}
|
||||||
)
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${filename}
|
||||||
|
)
|
||||||
set_source_files_properties(outfile PROPERTIES GENERATED TRUE)
|
set_source_files_properties(outfile PROPERTIES GENERATED TRUE)
|
||||||
endforeach ()
|
endforeach ()
|
||||||
foreach (dbms ${MYDDAS_DBMS} )
|
foreach (dbms ${MYDDAS_DBMS} )
|
||||||
set(outfile ${MYDDAS_PL_OUTDIR}/myddas_${dbms}.yap)
|
set(outfile ${MYDDAS_PL_OUTDIR}/myddas_${dbms}.yap)
|
||||||
list(APPEND MYDDAS_YAP_FILES ${outfile})
|
list(APPEND MYDDAS_YAP_FILES ${outfile})
|
||||||
execute_process(
|
add_custom_command(OUTPUT ${outfile}
|
||||||
COMMAND ${CMAKE_C_COMPILER} -D${dbms} -x c -E -P -w ${CMAKE_CURRENT_SOURCE_DIR}/myddas_driver.ypp -o ${outfile}
|
COMMAND ${CMAKE_C_COMPILER} -D${dbms} -x c -E -P -w ${CMAKE_CURRENT_SOURCE_DIR}/myddas_driver.ypp -o ${outfile}
|
||||||
)
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/myddas_driver.ypp
|
||||||
|
)
|
||||||
|
|
||||||
set_source_files_properties(outfile PROPERTIES GENERATED TRUE)
|
set_source_files_properties(outfile PROPERTIES GENERATED TRUE)
|
||||||
|
|
||||||
@ -46,3 +65,7 @@ endforeach()
|
|||||||
|
|
||||||
install(FILES ${MYDDAS_YAP_FILES} DESTINATION ${YAP_INSTALL_DATADIR}/myddas)
|
install(FILES ${MYDDAS_YAP_FILES} DESTINATION ${YAP_INSTALL_DATADIR}/myddas)
|
||||||
install(FILES myddas.yap DESTINATION ${YAP_INSTALL_DATADIR})
|
install(FILES myddas.yap DESTINATION ${YAP_INSTALL_DATADIR})
|
||||||
|
|
||||||
|
add_custom_target(MYDDAS_PL
|
||||||
|
ALL
|
||||||
|
DEPENDS ${MYDDAS_YAP_FILES})
|
@ -1 +1 @@
|
|||||||
:- include( myddas/myddas ).
|
:- include( myddas/myddas_core ).
|
||||||
|
@ -24,11 +24,12 @@
|
|||||||
db_insert/3,
|
db_insert/3,
|
||||||
db_abolish/2,
|
db_abolish/2,
|
||||||
db_listing/0,
|
db_listing/0,
|
||||||
db_listing/1
|
db_listing/1,
|
||||||
|
relation/3
|
||||||
]).
|
]).
|
||||||
|
|
||||||
|
|
||||||
:- use_module(myddas,[
|
:- use_module(myddas_core,[
|
||||||
db_module/1,
|
db_module/1,
|
||||||
c_db_check_if_exists_pred/3,
|
c_db_check_if_exists_pred/3,
|
||||||
c_db_preds_conn/4,
|
c_db_preds_conn/4,
|
||||||
@ -59,10 +60,12 @@
|
|||||||
translate/3,
|
translate/3,
|
||||||
queries_atom/2
|
queries_atom/2
|
||||||
]).
|
]).
|
||||||
|
#if MYDDAS_MYSQL
|
||||||
:- use_module(myddas_mysql,[
|
:- use_module(myddas_mysql,[
|
||||||
db_my_result_set/1
|
db_my_result_set/1
|
||||||
]).
|
]).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_SQLITE3
|
||||||
:- use_module(myddas_sqlite3,[
|
:- use_module(myddas_sqlite3,[
|
||||||
sqlite3_result_set/1,
|
sqlite3_result_set/1,
|
||||||
sqlite3_show_tables/1,
|
sqlite3_show_tables/1,
|
||||||
@ -77,6 +80,8 @@
|
|||||||
c_sqlite3_number_of_fields/3,
|
c_sqlite3_number_of_fields/3,
|
||||||
sqlite3_row/3
|
sqlite3_row/3
|
||||||
]).
|
]).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_ODBC
|
||||||
:- use_module(myddas_odbc,[
|
:- use_module(myddas_odbc,[
|
||||||
odbc_result_set/1,
|
odbc_result_set/1,
|
||||||
c_odbc_change_database/2,
|
c_odbc_change_database/2,
|
||||||
@ -90,7 +95,9 @@
|
|||||||
c_odbc_number_of_fields/3,
|
c_odbc_number_of_fields/3,
|
||||||
c_odbc_row/3
|
c_odbc_row/3
|
||||||
]).
|
]).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_POSTGRES
|
||||||
|
#endif
|
||||||
|
|
||||||
:- use_module( library(lists)).
|
:- use_module( library(lists)).
|
||||||
|
|
||||||
@ -104,7 +111,7 @@ db_import(RelationName,PredName0):-
|
|||||||
db_import(myddas,RelationName,PredName0).
|
db_import(myddas,RelationName,PredName0).
|
||||||
db_import(Connection,RelationName,PredName0) :-
|
db_import(Connection,RelationName,PredName0) :-
|
||||||
'$error_checks'(db_import(Connection,RelationName,PredName0)),
|
'$error_checks'(db_import(Connection,RelationName,PredName0)),
|
||||||
get_value(Connection,Con),
|
get_value(Connection,Con),
|
||||||
table_arity( Con, ConType, RelationName, Arity ),
|
table_arity( Con, ConType, RelationName, Arity ),
|
||||||
strip_module(PredName0, Module, PredName),
|
strip_module(PredName0, Module, PredName),
|
||||||
\+ c_db_check_if_exists_pred(PredName,Arity,Module),
|
\+ c_db_check_if_exists_pred(PredName,Arity,Module),
|
||||||
@ -124,8 +131,9 @@ db_import(Connection,RelationName,PredName0) :-
|
|||||||
functor(P,PredName,Arity),
|
functor(P,PredName,Arity),
|
||||||
P=..[PredName|LA],
|
P=..[PredName|LA],
|
||||||
%build PredName clause
|
%build PredName clause
|
||||||
table_access_predicate( ConType, Con, Arity, P, LA, Module, Assert ),
|
table_access_predicate( ConType, Con, Arity, P, LA, Module, Assert0 ),
|
||||||
assert_static(Module:Assert),
|
strip_module(Assert0,_,Assert),
|
||||||
|
assert_static(user:Assert),
|
||||||
c_db_add_preds(PredName,Arity,Module,Con).
|
c_db_add_preds(PredName,Arity,Module,Con).
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
@ -217,22 +225,6 @@ db_abolish(PredName,Arity):-
|
|||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
% db_abolish(+,+)
|
|
||||||
%
|
|
||||||
%
|
|
||||||
db_abolish(Module:PredName,Arity):-!,
|
|
||||||
'$error_checks'(db_abolish(Module:PredName,Arity)),
|
|
||||||
c_db_delete_predicate(Module,PredName,Arity),
|
|
||||||
abolish(Module:PredName,Arity).
|
|
||||||
db_abolish(PredName,Arity):-
|
|
||||||
'$error_checks'(db_abolish(PredName,Arity)),
|
|
||||||
db_module(Module),
|
|
||||||
c_db_delete_predicate(Module,PredName,Arity),
|
|
||||||
abolish(Module:PredName,Arity).
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
% db_listing.
|
% db_listing.
|
||||||
%
|
%
|
||||||
@ -282,14 +274,15 @@ table_arity( Con, ConType, RelationName, Arity ) :-
|
|||||||
.
|
.
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
#if MYDDAS_MYSQL
|
||||||
% major attributes types.
|
% major attributes types.
|
||||||
table_attributes( mysql, Con, RelationName, TypesList ) :-
|
table_attributes( mysql, Con, RelationName, TypesList ) :-
|
||||||
c_db_my_get_attributes_types(RelationName,Con,TypesList).
|
c_db_my_get_attributes_types(RelationName,Con,TypesList).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_POSTGRES
|
||||||
table_attributes( postgres, Con, RelationName, TypesList ) :-
|
table_attributes( postgres, Con, RelationName, TypesList ) :-
|
||||||
c_postgres_get_attributes_types(RelationName,Con,TypesList).
|
c_postgres_get_attributes_types(RelationName,Con,TypesList).
|
||||||
|
#endif
|
||||||
table_attributes( odbc, Con, RelationName, TypesList ) :-
|
table_attributes( odbc, Con, RelationName, TypesList ) :-
|
||||||
c_odbc_get_attributes_types(RelationName,Con,TypesList).
|
c_odbc_get_attributes_types(RelationName,Con,TypesList).
|
||||||
|
|
||||||
@ -298,7 +291,7 @@ table_attributes( sqlite3, Con, RelationName, TypesList ) :-
|
|||||||
|
|
||||||
% predicate for DB-> query
|
% predicate for DB-> query
|
||||||
|
|
||||||
|
#if MYDDAS_MYSQL
|
||||||
table_access_predicate( mysql, Con, Arity, P, LA, M,
|
table_access_predicate( mysql, Con, Arity, P, LA, M,
|
||||||
M:( P :- myddas_util_predicates:'$copy_term_nv'(P,[],G,_),
|
M:( P :- myddas_util_predicates:'$copy_term_nv'(P,[],G,_),
|
||||||
myddas_prolog2sql:translate(G,G,Code),
|
myddas_prolog2sql:translate(G,G,Code),
|
||||||
@ -309,7 +302,8 @@ table_access_predicate( mysql, Con, Arity, P, LA, M,
|
|||||||
!,
|
!,
|
||||||
user:c_db_my_row(ResultSet,Arity,LA)
|
user:c_db_my_row(ResultSet,Arity,LA)
|
||||||
)).
|
)).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_POSTGRES
|
||||||
table_access_predicate( postgres, Con, Arity, P, LA, M,
|
table_access_predicate( postgres, Con, Arity, P, LA, M,
|
||||||
M:( P :- myddas_util_predicates:'$copy_term_nv'(P,[],G,_),
|
M:( P :- myddas_util_predicates:'$copy_term_nv'(P,[],G,_),
|
||||||
myddas_prolog2sql:translate(M:G,M:G,Code),
|
myddas_prolog2sql:translate(M:G,M:G,Code),
|
||||||
@ -320,7 +314,8 @@ table_access_predicate( postgres, Con, Arity, P, LA, M,
|
|||||||
!,
|
!,
|
||||||
c_postgres_row(ResultSet,Arity,LA) )
|
c_postgres_row(ResultSet,Arity,LA) )
|
||||||
).
|
).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_SQLITE3
|
||||||
table_access_predicate( sqlite3, Con, Arity, P, LA, M,
|
table_access_predicate( sqlite3, Con, Arity, P, LA, M,
|
||||||
M:( P :- (myddas_util_predicates:'$copy_term_nv'(P,[],G,_),
|
M:( P :- (myddas_util_predicates:'$copy_term_nv'(P,[],G,_),
|
||||||
myddas_prolog2sql:translate(G,G,Code),
|
myddas_prolog2sql:translate(G,G,Code),
|
||||||
@ -331,7 +326,8 @@ table_access_predicate( sqlite3, Con, Arity, P, LA, M,
|
|||||||
!,
|
!,
|
||||||
myddas_sqlite3:sqlite3_row(ResultSet,Arity,LA)
|
myddas_sqlite3:sqlite3_row(ResultSet,Arity,LA)
|
||||||
) )).
|
) )).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_ODBC
|
||||||
table_access_predicate( odbc, Con, Arity, P, LA, M,
|
table_access_predicate( odbc, Con, Arity, P, LA, M,
|
||||||
M:( P :- (myddas_util_predicates:'$copy_term_nv'(P,[],G,_),
|
M:( P :- (myddas_util_predicates:'$copy_term_nv'(P,[],G,_),
|
||||||
myddas_prolog2sql:translate(G,G,Code),
|
myddas_prolog2sql:translate(G,G,Code),
|
||||||
@ -342,9 +338,9 @@ table_access_predicate( odbc, Con, Arity, P, LA, M,
|
|||||||
!,
|
!,
|
||||||
myddas_odbc:c_odbc_row(ResultSet,Arity,LA)
|
myddas_odbc:c_odbc_row(ResultSet,Arity,LA)
|
||||||
) )).
|
) )).
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if MYDDAS_MYSQL
|
||||||
|
|
||||||
table_insert( mysql, Con, RelationName, TypesList, Predicate, LA,
|
table_insert( mysql, Con, RelationName, TypesList, Predicate, LA,
|
||||||
( Predicate :- myddas_assert_predicates:
|
( Predicate :- myddas_assert_predicates:
|
||||||
( '$get_values_for_insert'(TypesList,LA,ValuesList),
|
( '$get_values_for_insert'(TypesList,LA,ValuesList),
|
||||||
@ -353,7 +349,8 @@ table_insert( mysql, Con, RelationName, TypesList, Predicate, LA,
|
|||||||
'$write_or_not'(SQL),
|
'$write_or_not'(SQL),
|
||||||
c_db_my_query(SQL,_,Con,Mode,_)))
|
c_db_my_query(SQL,_,Con,Mode,_)))
|
||||||
).
|
).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_POSTGRES
|
||||||
table_insert( postgres, Con, RelationName, TypesList, Predicate, LA,
|
table_insert( postgres, Con, RelationName, TypesList, Predicate, LA,
|
||||||
( Predicate :- myddas_assert_predicates:
|
( Predicate :- myddas_assert_predicates:
|
||||||
( '$get_values_for_insert'(TypesList,LA,ValuesList),
|
( '$get_values_for_insert'(TypesList,LA,ValuesList),
|
||||||
@ -362,7 +359,8 @@ table_insert( postgres, Con, RelationName, TypesList, Predicate, LA,
|
|||||||
'$write_or_not'(SQL),
|
'$write_or_not'(SQL),
|
||||||
c_postgres_query(SQL,_,Con,Mode,_)))
|
c_postgres_query(SQL,_,Con,Mode,_)))
|
||||||
).
|
).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_SQLITE3
|
||||||
table_insert( sqlite3, Con, RelationName, TypesList, Predicate, LA,
|
table_insert( sqlite3, Con, RelationName, TypesList, Predicate, LA,
|
||||||
( Predicate :- myddas_assert_predicates:
|
( Predicate :- myddas_assert_predicates:
|
||||||
( '$get_values_for_insert'(TypesList,LA,ValuesList),
|
( '$get_values_for_insert'(TypesList,LA,ValuesList),
|
||||||
@ -371,7 +369,8 @@ table_insert( sqlite3, Con, RelationName, TypesList, Predicate, LA,
|
|||||||
'$write_or_not'(SQL),
|
'$write_or_not'(SQL),
|
||||||
c_sqlite3_query(SQL,_,Con,Mode,_)))
|
c_sqlite3_query(SQL,_,Con,Mode,_)))
|
||||||
).
|
).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_ODBC
|
||||||
table_insert( odbc, Con, RelationName, TypesList, Predicate, LA,
|
table_insert( odbc, Con, RelationName, TypesList, Predicate, LA,
|
||||||
( Predicate :- myddas_assert_predicates:
|
( Predicate :- myddas_assert_predicates:
|
||||||
( '$get_values_for_insert'(TypesList,LA,ValuesList),
|
( '$get_values_for_insert'(TypesList,LA,ValuesList),
|
||||||
@ -379,8 +378,8 @@ table_insert( odbc, Con, RelationName, TypesList, Predicate, LA,
|
|||||||
'$write_or_not'(SQL),
|
'$write_or_not'(SQL),
|
||||||
c_odbc_my_query(SQL,_,_,_,Con)))
|
c_odbc_my_query(SQL,_,_,_,Con)))
|
||||||
).
|
).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_MYSQL
|
||||||
table_view( mysql, Con, CopyView, CopyGoal, Arity, LA, M,
|
table_view( mysql, Con, CopyView, CopyGoal, Arity, LA, M,
|
||||||
( CopyView :-
|
( CopyView :-
|
||||||
M:( '$copy_term_nv'(CopyView,[],ProjT,Dic),
|
M:( '$copy_term_nv'(CopyView,[],ProjT,Dic),
|
||||||
@ -392,7 +391,8 @@ table_view( mysql, Con, CopyView, CopyGoal, Arity, LA, M,
|
|||||||
c_db_my_query(FinalSQL,ResultSet,Con,Mode,_),
|
c_db_my_query(FinalSQL,ResultSet,Con,Mode,_),
|
||||||
!,
|
!,
|
||||||
c_db_my_row(ResultSet,Arity,LA) ))).
|
c_db_my_row(ResultSet,Arity,LA) ))).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_POSTGRES
|
||||||
table_view( postgres, Con, CopyView, CopyGoal, Arity, LA, M,
|
table_view( postgres, Con, CopyView, CopyGoal, Arity, LA, M,
|
||||||
( CopyView :-
|
( CopyView :-
|
||||||
M:( '$copy_term_nv'(CopyView,[],ProjT,Dic),
|
M:( '$copy_term_nv'(CopyView,[],ProjT,Dic),
|
||||||
@ -404,7 +404,8 @@ table_view( postgres, Con, CopyView, CopyGoal, Arity, LA, M,
|
|||||||
c_postgres_query(FinalSQL,ResultSet,Con,Mode,_),
|
c_postgres_query(FinalSQL,ResultSet,Con,Mode,_),
|
||||||
!,
|
!,
|
||||||
c_postgres_row(ResultSet,Arity,LA) ))).
|
c_postgres_row(ResultSet,Arity,LA) ))).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_ODBC
|
||||||
table_view( odbc, Con, CopyView, CopyGoal, Arity, LA, M,
|
table_view( odbc, Con, CopyView, CopyGoal, Arity, LA, M,
|
||||||
( CopyView :-
|
( CopyView :-
|
||||||
M:( '$copy_term_nv'(CopyView,[],ProjT,Dic),
|
M:( '$copy_term_nv'(CopyView,[],ProjT,Dic),
|
||||||
@ -416,7 +417,8 @@ table_view( odbc, Con, CopyView, CopyGoal, Arity, LA, M,
|
|||||||
c_odbc_query(FinalSQL,ResultSet,Arity,BindList,Con),
|
c_odbc_query(FinalSQL,ResultSet,Arity,BindList,Con),
|
||||||
!,
|
!,
|
||||||
c_odbc_row(ResultSet,Arity,LA) ))).
|
c_odbc_row(ResultSet,Arity,LA) ))).
|
||||||
|
#endif
|
||||||
|
#if MYDDAS_SQLITE3
|
||||||
table_view( sqlite3, Con, CopyView, CopyGoal, Arity, LA, M,
|
table_view( sqlite3, Con, CopyView, CopyGoal, Arity, LA, M,
|
||||||
( CopyView :-
|
( CopyView :-
|
||||||
M:( '$copy_term_nv'(CopyView,[],ProjT,Dic),
|
M:( '$copy_term_nv'(CopyView,[],ProjT,Dic),
|
||||||
@ -427,3 +429,4 @@ table_view( sqlite3, Con, CopyView, CopyGoal, Arity, LA, M,
|
|||||||
myddas_sqlite3:c_sqlite3_query(FinalSQL,ResultSet,Con,_,_),
|
myddas_sqlite3:c_sqlite3_query(FinalSQL,ResultSet,Con,_,_),
|
||||||
!,
|
!,
|
||||||
myddas_sqlite3:sqlite3_row(ResultSet,Arity,LA) ))).
|
myddas_sqlite3:sqlite3_row(ResultSet,Arity,LA) ))).
|
||||||
|
#endif
|
||||||
|
@ -158,7 +158,7 @@
|
|||||||
|
|
||||||
:- meta_predicate db_import(+,+,:), db_import(+,:).
|
:- meta_predicate db_import(+,+,:), db_import(+,:).
|
||||||
|
|
||||||
|
#ifdef MYDDAS_SQLITE3
|
||||||
:- use_module(myddas_sqlite3,[
|
:- use_module(myddas_sqlite3,[
|
||||||
% myddas_mysql.ypp
|
% myddas_mysql.ypp
|
||||||
c_sqlite3_connect/4,
|
c_sqlite3_connect/4,
|
||||||
@ -171,7 +171,7 @@
|
|||||||
sqlite3_show_tables/2,
|
sqlite3_show_tables/2,
|
||||||
sqlite3_row/3
|
sqlite3_row/3
|
||||||
]).
|
]).
|
||||||
|
#endif
|
||||||
:- use_module(myddas_util_predicates,[
|
:- use_module(myddas_util_predicates,[
|
||||||
'$prolog2sql'/3,
|
'$prolog2sql'/3,
|
||||||
'$create_multi_query'/3,
|
'$create_multi_query'/3,
|
||||||
@ -248,8 +248,6 @@ user:prolog_file_type( db, dataset ).
|
|||||||
%
|
%
|
||||||
%
|
%
|
||||||
%
|
%
|
||||||
db_open(Interface,HostDb,User,Password):-
|
|
||||||
db_open(Interface,myddas,HostDb,User,Password).
|
|
||||||
|
|
||||||
#ifdef MYDDAS_MYSQL
|
#ifdef MYDDAS_MYSQL
|
||||||
db_open(mysql,Connection,Host/Db/Port/Socket,User,Password) :- !,
|
db_open(mysql,Connection,Host/Db/Port/Socket,User,Password) :- !,
|
||||||
@ -286,12 +284,18 @@ db_open(odbc,Connection,ODBCEntry,User,Password) :-
|
|||||||
set_value(Connection,Con).
|
set_value(Connection,Con).
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
%% sqlite3
|
#ifdef MYDDAS_SQLITE3
|
||||||
db_open(sqlite3,Connection,File,User,Password) :-
|
db_open(sqlite3,Connection,File,User,Password) :-
|
||||||
absolute_file_name(File,Db,[access(write),file_type(myddas),expand(true)]),
|
absolute_file_name(File,Db,[access(write),file_type(myddas),expand(true)]),
|
||||||
'$error_checks'(db_open(sqlite3,Connection,Db,User,Password)),
|
'$error_checks'(db_open(sqlite3,Connection,Db,User,Password)),
|
||||||
c_sqlite3_connect(Db,User,Password,Con),
|
c_sqlite3_connect(Db,User,Password,Con),
|
||||||
set_value(Connection,Con).
|
set_value(Connection,Con).
|
||||||
|
db_open(sqlite3,File,User,Password) :-
|
||||||
|
absolute_file_name(File,Db,[access(write),file_type(myddas),expand(true)]),
|
||||||
|
'$error_checks'(db_open(sqlite3,Connection,Db,User,Password)),
|
||||||
|
c_sqlite3_connect(Db,User,Password,Con),
|
||||||
|
set_value(myddas,Con).
|
||||||
|
#endif
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
|
@ -60,7 +60,7 @@
|
|||||||
:- use_module(library(maplist)).
|
:- use_module(library(maplist)).
|
||||||
|
|
||||||
|
|
||||||
:- use_module(myddas).
|
:- use_module(myddas_core).
|
||||||
|
|
||||||
:- use_module(myddas_errors,[
|
:- use_module(myddas_errors,[
|
||||||
'$error_checks'/1
|
'$error_checks'/1
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
db_sql_mode/2
|
db_sql_mode/2
|
||||||
]).
|
]).
|
||||||
|
|
||||||
:- use_module(myddas,[
|
:- use_module(myddas_core,[
|
||||||
db_sql/3
|
db_sql/3
|
||||||
]).
|
]).
|
||||||
|
|
||||||
|
@ -49,6 +49,10 @@
|
|||||||
member/2
|
member/2
|
||||||
]).
|
]).
|
||||||
|
|
||||||
|
:- use_module(library(myddas_assert_predicates),[
|
||||||
|
relation/3
|
||||||
|
]).
|
||||||
|
|
||||||
:- use_module(library(gensym)).
|
:- use_module(library(gensym)).
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
'$check_list_on_list'/2
|
'$check_list_on_list'/2
|
||||||
]).
|
]).
|
||||||
|
|
||||||
:- use_module(myddas,[
|
:- use_module(myddas_core,[
|
||||||
db_verbose/1,
|
db_verbose/1,
|
||||||
c_db_preds_conn/4
|
c_db_preds_conn/4
|
||||||
]).
|
]).
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
:- use_module(library(lists)).
|
:- use_module(library(lists)).
|
||||||
:- use_module(library(maplist)).
|
:- use_module(library(maplist)).
|
||||||
:- use_module(library(myddas)).
|
:- use_module(myddas_core).
|
||||||
|
|
||||||
main :-
|
main :-
|
||||||
init,
|
init,
|
||||||
@ -14,17 +14,17 @@ main_ :-
|
|||||||
main_ .
|
main_ .
|
||||||
|
|
||||||
init :-
|
init :-
|
||||||
catch(db_open(sqlite3,data('chinook.db'),_,_), _, fail),
|
catch(db_open(sqlite3,con,('chinook.db'),_,_), _, fail),
|
||||||
% db_open(sqlite3, 'chinook.db', _, _),
|
% db_open(sqlite3, 'chinook.db', _, _),
|
||||||
writeln('chinook has landed').
|
writeln('chinook has landed').
|
||||||
|
|
||||||
go :-
|
go :-
|
||||||
writeln(('db_import')),
|
writeln(('db_import')),
|
||||||
db_import('artists', artists),
|
db_import(con,'artists', artists),
|
||||||
writeln(('artist -> artists')),
|
writeln(('artist -> artists')),
|
||||||
db_import('albums', albums),
|
db_import(con,'albums', albums),
|
||||||
writeln(('albums -> albums')),
|
writeln(('albums -> albums')),
|
||||||
db_import('tracks', tracks),
|
db_import(con,'tracks', tracks),
|
||||||
writeln(('tracks -> tracks')).
|
writeln(('tracks -> tracks')).
|
||||||
|
|
||||||
|
|
||||||
@ -34,31 +34,31 @@ go :-
|
|||||||
writeln(X:Y).
|
writeln(X:Y).
|
||||||
go :-
|
go :-
|
||||||
writeln(db_get_attributes_types),
|
writeln(db_get_attributes_types),
|
||||||
db_get_attributes_types(albums,Als),
|
db_get_attributes_types(con,albums,Als),
|
||||||
format('~w -> ~w~n',[albums,Als]),
|
format('~w -> ~w~n',[albums,Als]),
|
||||||
db_get_attributes_types(tracks,Ts),
|
db_get_attributes_types(con,tracks,Ts),
|
||||||
format('~w -> ~w~n',[tracks,Ts]),
|
format('~w -> ~w~n',[tracks,Ts]),
|
||||||
db_get_attributes_types(artists,As),
|
db_get_attributes_types(con,artists,As),
|
||||||
format('~w -> ~w~n',[artists,As]).
|
format('~w -> ~w~n',[artists,As]).
|
||||||
go :-
|
go :-
|
||||||
writeln(db_number_of_fields),
|
writeln(db_number_of_fields),
|
||||||
db_number_of_fields(albums,Als),
|
db_number_of_fields(con,albums,Als),
|
||||||
db_number_of_fields(tracks,Ts),
|
db_number_of_fields(con,tracks,Ts),
|
||||||
db_number_of_fields(artists,As),
|
db_number_of_fields(con,artists,As),
|
||||||
writeln(As:Als:Ts).
|
writeln(As:Als:Ts).
|
||||||
|
|
||||||
go :-
|
go :-
|
||||||
|
|
||||||
db_describe(albums, Desc), writeln(albums:Desc).
|
db_describe(con,albums, Desc), writeln(albums:Desc).
|
||||||
go :-
|
go :-
|
||||||
db_describe(tracks, Desc), writeln(tracks:Desc).
|
db_describe(con,tracks, Desc), writeln(tracks:Desc).
|
||||||
go :-
|
go :-
|
||||||
db_describe(artists, Desc), writeln(artists:Desc).
|
db_describe(con,artists, Desc), writeln(artists:Desc).
|
||||||
go :-
|
go :-
|
||||||
db_show_tables(Desc), writeln(tables:Desc).
|
db_show_tables(con,Desc), writeln(tables:Desc).
|
||||||
go :-
|
go :-
|
||||||
db_show_tables(table(T)),
|
db_show_tables(con,table(T)),
|
||||||
db_describe(T,tableinfo(FieldID,Type,Null,Primary,Default,'')),
|
db_describe(con,T,tableinfo(FieldID,Type,Null,Primary,Default,'')),
|
||||||
writeln(T:tableinfo(FieldID,Type,Null,Primary,Default,'')).
|
writeln(T:tableinfo(FieldID,Type,Null,Primary,Default,'')).
|
||||||
|
|
||||||
|
|
||||||
@ -91,8 +91,7 @@ go_cut1 :-
|
|||||||
!.
|
!.
|
||||||
|
|
||||||
close :-
|
close :-
|
||||||
db_close.
|
db_close(con).
|
||||||
|
|
||||||
|
|
||||||
|
:- initialization(main, now).
|
||||||
:- initialization(main).
|
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
|
|
||||||
:- module(android,
|
%:- module(android,
|
||||||
[text_to_query/2]).
|
% [text_to_query/2]).
|
||||||
|
|
||||||
:- initialization(yap_flag(verbose,_,normal)).
|
:- initialization(yap_flag(verbose,_,normal)).
|
||||||
|
|
||||||
:- meta_predicate( text_to_query( :, - ) ).
|
:- meta_predicate( text_to_query( :, - ) ).
|
||||||
|
|
||||||
text_to_query( MString, Status ) :-
|
text_to_query( MString, Status ) :-
|
||||||
strip_module( MString, Mod, String ),
|
strip_module( user:MString, Mod, String ),
|
||||||
|
top_query(android:query_( Mod:String, Status ) ).
|
||||||
|
|
||||||
top_query(query_( MString, Mod, Status ) ).
|
query_( Mod:String, Status ) :-
|
||||||
|
|
||||||
query_( Mtring, Mod, Status ) :-
|
|
||||||
atomic_to_term( String, Goal, VarNames ),
|
atomic_to_term( String, Goal, VarNames ),
|
||||||
(
|
(
|
||||||
is_list(Goal) -> G = ensure_loaded( Goal ) ; G = Goal ),
|
is_list(Goal) -> G = consult( Goal ) ; G = Goal ),
|
||||||
catch(query_to_answer( Mod:G, VarNames, Status, Bindings).
|
query_to_answer( Mod:G, VarNames, Status, Bindings).
|
||||||
|
|
||||||
|
|
||||||
|
user:file_search_path(data, '/data/data/pt.up.yap/files/Yap/myddas').
|
||||||
|
@ -225,13 +225,14 @@
|
|||||||
'$extend_file_search_path'(P).
|
'$extend_file_search_path'(P).
|
||||||
'$init_path_extensions'.
|
'$init_path_extensions'.
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @pred top_query(?0 Goal).
|
* @pred top_query(?0 Goal).
|
||||||
*
|
*
|
||||||
* run _Goal_ as f it had been called from the Prolog
|
* run _Goal_ as f it had been called from the Prolog
|
||||||
* top-level.
|
* top-level.
|
||||||
*/
|
*/
|
||||||
top_quer(G) :-
|
top_query(G) :-
|
||||||
'$init_step'(2), % consult
|
'$init_step'(2), % consult
|
||||||
'$init_step'(3), % globals
|
'$init_step'(3), % globals
|
||||||
'$init_step'(4), % check if a saved state,
|
'$init_step'(4), % check if a saved state,
|
||||||
@ -248,12 +249,11 @@ top_quer(G) :-
|
|||||||
nb_setval('$debug_jump',off),
|
nb_setval('$debug_jump',off),
|
||||||
'__NB_setval__'('$trace',off),
|
'__NB_setval__'('$trace',off),
|
||||||
nb_setval('$debug_status', state(zip, 0, stop,off)),
|
nb_setval('$debug_status', state(zip, 0, stop,off)),
|
||||||
set_prolog_flag(break_level, 0).
|
set_prolog_flag(break_level, 0),
|
||||||
call(user:G, Error, '$Errors'(Error)).
|
catch(user:G, Error, '$Error'(Error)).
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user