Merge /home/vsc/yap

This commit is contained in:
Vitor Santos Costa
2018-06-27 23:27:08 +01:00
34 changed files with 426 additions and 395 deletions

View File

@@ -127,9 +127,7 @@
%% SWI end
:- use_module(library(dialect/hprolog)).
:- use_module(pairlist).
:- start_low_level_trace.
:- include(chr_op).
:- stop_low_level_trace.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%

View File

@@ -72,7 +72,7 @@ foreach (driver ${MYDDAS_DBMS})
cpp_driver(MYDDAS_YAP ${driver} myddas_driver.ypp)
endforeach ()
list (APPEND MYDDAS_YAP ${CMAKE_CURRENT_SOURCE_DIR}/../sqlite3/test.yap ${CMAKE_CURRENT_SOURCE_DIR}/../sqlite3/chinook.db)
list (APPEND MYDDAS_YAP ${CMAKE_CURRENT_SOURCE_DIR}/../sqlite3/sqlitest.yap ${CMAKE_CURRENT_SOURCE_DIR}/../sqlite3/chinook.db)
add_to_group(MYDDAS_YAP pl_library )
add_custom_target(plmyddas ALL DEPENDS ${MYDDAS_YAP} )

View File

@@ -15,7 +15,7 @@
* *
*************************************************************************/
//:- load_foreign_files([myddas], [], init_myddas).
%%:- load_foreign_files([myddas], [], init_myddas).
/* Initialize MYDDAS GLOBAL STRUCTURES */
:- c_db_initialize_myddas.
@@ -135,12 +135,12 @@
:- use_module(myddas_sqlite3,[
% myddas_mysql.ypp
c_sqlite3_connect/4,
c_sqlite3_disconnect/1,
c_sqlite3_query/5,
%c_sqlite3_connect/4,
%c_sqlite3_disconnect/1,
%c_sqlite3_query/5,
sqlite3_result_set/1,
c_sqlite3_number_of_fields/3,
c_sqlite3_get_attributes_types/3,
%c_sqlite3_number_of_fields/3,
%c_sqlite3_get_attributes_types/3,
sqlite3_describe/3,
sqlite3_show_tables/2,
sqlite3_row/3
@@ -188,7 +188,6 @@
%
%% @pred db_open(+Interface,-Handle,+HostDb,+User,+Password)
%% @pred db_open(+Interface,+HostDb,+User,+Password)
%
@@ -369,7 +368,7 @@ db_sql_(ConType, Con, SQL,LA):-
c_postgres_query(SQL,ResultSet,Con,Mode,Arity)
;ConType == sqlite3 ->
sqlite3_result_set(Mode),
c_sqlite3_query(SQL,ResultSet,Con,Mode,Arity)
myddas_myddas_sqlite3:c_sqlite3_query(SQL,ResultSet,Con,Mode,Arity)
;
c_odbc_query(SQL,ResultSet,Arity,LA,Con),
c_odbc_number_of_fields_in_query(SQL,Con,Arity)
@@ -459,7 +458,7 @@ db_assert(Connection,PredName):-
c_postgres_query(SQL,_,Con,Mode,_)
;ConType == sqlite3 ->
sqlite3_result_set(Mode),
c_sqlite3_query(SQL,_,Con,Mode,_)
myddas_myddas_sqlite3:c_sqlite3_query(SQL,_,Con,Mode,_)
;
c_odbc_query(SQL,_,_,_,Con)
).
@@ -488,7 +487,7 @@ db_create_table(Connection,TableName,FieldsInf):-
c_postsgres_query(FinalSQL,_,Con,Mode,_)
;ConType == sqlite3 ->
sqlite3_result_set(Mode),
c_sqlite3_query(FinalSQL,_,Con,Mode,_)
myddas_myddas_sqlite3:c_sqlite3_query(FinalSQL,_,Con,Mode,_)
;
c_odbc_query(FinalSQL,_,_,_,Con)
).
@@ -565,7 +564,7 @@ db_update(Connection,WherePred-SetPred):-
;
ConType == sqlite3 ->
sqlite3_result_set(Mode),
c_sqlite3_query(SQL,_,Conn,Mode,_)
myddas_sqlite3:c_sqlite3_query(SQL,_,Conn,Mode,_)
;
ConType == odbc ->
odbc_result_set(Mode),

View File

@@ -19,27 +19,28 @@
#define DBMS(x) sqlite3_##x
#define c_DBMS(x) c_sqlite3_##x
#define NAME() 'libYapsqlite3'
#define MODULE() myddas_sqlite3
#define MODULE() user
#define INIT() init_sqlite3
#elif defined( odbc )
#undef odbc
#define DBMS(x) odbc_##x
#define c_DBMS(x) c_odbc_##x
#define NAME() 'libYapodbc'
#define MODULE() myddas_odbc
#define MODULE() user
#define INIT() init_odbc
#elif defined( postgres )
#undef postgres
#define DBMS(x) postgres_##x
#define c_DBMS(x) c_postgres_##x
#define NAME() 'libYappostgres'
#define MODULE() myddas_postgres
#define MODULE() user
#define INIT() init_odbc
#endif
#if defined(DBMS)
:- module(MODULE(),[
/*
c_DBMS(change_database)/2,
c_DBMS(connect)/4,
c_DBMS(disconnect)/1,
@@ -49,6 +50,7 @@
c_DBMS(get_next_result_set)/3,
c_DBMS(query)/5,
c_DBMS(number_of_fields)/3,
*/
DBMS(describe)/3,
DBMS(show_tables)/2,
DBMS(row)/3
@@ -69,7 +71,7 @@
'$make_a_list'/2,
'$write_or_not'/1
]).
:- load_foreign_files( [NAME()], [], INIT()).
% :- load_foreign_files( [NAME()], [], INIT()).
%--------------------------------------------------------
% Public Predicates

View File

@@ -2,7 +2,7 @@ message( " * Sqlite3 Data-Base (http://www.sqlite3ql.org), distributed with MY
set (SQLITE_EXTRA
chinook.db
test.yap)
sqlitest.yap)
set( YAPSQLITE3_SOURCES
myddas_sqlite3.c
@@ -61,5 +61,3 @@ endif()
install(FILES ${SQLITE_EXTRA}
DESTINATION ${libpl}
)
# file (INSTALL chinook.db test.yap DESTINATION ${libpl})

View File

@@ -672,14 +672,13 @@ static void Yap_InitBackMYDDAS_SQLITE3Preds(void) {
}
X_API void init_sqlite3(void) {
Term cm = CurrentModule;
CurrentModule = MkAtomTerm(Yap_LookupAtom("myddas_sqlite3"));
Term cm = CurrentModule;
CurrentModule = MkAtomTerm(Yap_LookupAtom("myddas_sqlite3"));
Yap_InitMYDDAS_SQLITE3Preds();
Yap_InitBackMYDDAS_SQLITE3Preds();
CurrentModule = cm;
CurrentModule = cm;
}

View File

@@ -0,0 +1,92 @@
:- stop_low_level_trace.
:- use_module(library(maplist)).
:- use_module(library(myddas)).
main :-
init,
main_,
close.
main_ :-
go,
fail.
main_ .
init :-
db_open(sqlite3, '/data/user/0/pt.up.yap.yapdroid/files/Yap/chinook.db', _, _),
writeln('chinook has landed').
go :-
writeln(('db_import')),
db_import('artists', artists),
writeln(('artist -> artists')),
db_import('albums', albums),
writeln(('albums -> albums')),
db_import('tracks', tracks),
writeln(('tracks -> tracks')).
go :-
start_low_level_trace,
writeln(db_get_attributes_types),
db_get_attributes_types(albums,Als),
format('~w -> ~w~n',[albums,Als]),
db_get_attributes_types(tracks,Ts),
format('~w -> ~w~n',[tracks,Ts]),
db_get_attributes_types(artists,As),
format('~w -> ~w~n',[artists,As]).
go :-
writeln(db_number_of_fields),
db_number_of_fields(albums,Als),
db_number_of_fields(tracks,Ts),
db_number_of_fields(artists,As),
writeln(As:Als:Ts).
go :-
db_describe(albums, Desc), writeln(albums:Desc).
go :-
db_describe(tracks, Desc), writeln(tracks:Desc).
go :-
db_describe(artists, Desc), writeln(artists:Desc).
go :-
db_show_tables(Desc), writeln(tables:Desc).
go :-
db_show_tables(table(T)),
db_describe(T,tableinfo(FieldID,Type,Null,Primary,Default,'')),
writeln(T:tableinfo(FieldID,Type,Null,Primary,Default,'')).
go :-
go_cut0.
go :-
%stop_low_level_trace,
findall(X:Y,artists(X,Y),Ls),
length(Ls,Total),
sort(Ls, LLs),
length(LLs, T),
writeln(T:Total).
go :-
go_cut1.
go :-
X=1,
artists(X,Y),
writeln(X:Y).
go_cut0 :-
% start_low_level_trace,
artists(X,Y),
writeln(X:Y),
!.
go_cut1 :-
X=1,
artists(X,Y),
writeln(X:Y),
!.
close :-
db_close.
:- main.

View File

@@ -1,85 +0,0 @@
:- compile(library(maplist)).
:- use_module(library(myddas)).
main :-
init,
main_,
close.
main_ :-
go,
fail.
main_ .
%init :-
db_open(sqlite3, '/data/user/0/pt.up.yap.yapdroid/files/Yap/chinook.db', _, _),
writeln('chinook has landed'),
db_import('Artist', artist),
writeln('Artist -> artist'),
db_import('Album', album),
writeln('Album -> album'),
db_import('Track', track).
writeln('Track -> track').
go :-
db_get_attributes_types(album,Als),
format('~w -> ~w~n'.[album,Als]),
db_get_attributes_types(track,Ts),
format('~w -> ~w~n'.[track,Ts]),
db_get_attributes_types(artist,As),
format('~w -> ~w~n'.[artist,As]).
go :-
db_number_of_fields(album,Als),
db_number_of_fields(track,Ts),
db_number_of_fields(artist,As),
writeln(As:Als:Ts).
go :-
db_describe(album, Desc), writeln(album:Desc) ;
db_describe(track, Desc), writeln(track:Desc) ;
db_describe(artist, Desc), writeln(artist:Desc).
go :-
db_show_tables(Desc), writeln(tables:Desc).
go :-
db_show_tables(table(T)),
db_describe(T,tableinfo(FieldID,Type,Null,Primary,Default,'')),
writeln(T:tableinfo(FieldID,Type,Null,Primary,Default,'')).
go :-
go_cut0.
go :-
%stop_low_level_trace,
findall(X:Y,artist(X,Y),Ls),
length(Ls,Total),
sort(Ls, LLs),
length(LLs, T),
writeln(T:Total).
go :-
go_cut1.
go :-
X=1,
artist(X,Y),
writeln(X:Y).
go_cut0 :-
% start_low_level_trace,
artist(X,Y),
writeln(X:Y),
!.
go_cut1 :-
X=1,
artist(X,Y),
writeln(X:Y),
!.
close :-
db_close.
:- main.

View File

@@ -59,10 +59,9 @@ and_close(int sno) {
static int
and_put(int sno, int ch) {
buff0 += ch;
if (ch=='\n' || buff0.length() == 128) { //buff0+= '\0';
streamerInstance->display(buff0);
buff0.clear();
}
buff0.clear();
return ch;
}