Difference between revisions of "Database package"

From Octave
Jump to navigation Jump to search
(add redis)
(don't know who profits from the mailinglist extract?)
Line 34: Line 34:
 
== SQLite ==
 
== SQLite ==
  
<!-- Posted on the mailing list by Paul Dreik <slask@pauldreik.se> -->
+
* [https://github.com/markuman/go-sqlite go-sqlite] – simple sqlite3 wrapper as one .m file.
 
 
<pre>
 
On 22 December 2011 20:53, Paul Dreik <slask@pauldreik.se> wrote:
 
> 2011-12-21 13:02, dirk skrev:
 
>> On Wed, 2011-12-21 at 09:34 +0100, Paul Dreik wrote:
 
>>> 2011-12-20 23:37, dirkmayhew@comcast.net skrev:
 
>>>> Hi all -
 
>>>> Couldn't make the database package work, and after a reasonable amount
 
>>>> of googling I concluded I was not the only one.
 
>>>> As a solution I made my own .oct file that queries SQLite & returns a
 
>>>> cell array of the results; kudos to  SQLite's "amalgamation" file and
 
>>>> Octave's "mkoctfile."
 
>>>>
 
>>>> - is this the right forum to ask the next 2 questions?
 
>>>> - is anyone interested in connecting SQLite to octave?
 
>>>> - what's my next reasonable step (if any): make a package, post code
 
>>>> somewhere (here?), or... ?
 
>>>>
 
>>>> thanks,
 
>>>> dirk mayhew
 
>>>> ps and thank you also to Xavier Delacour - I would use your code if I could
 
>>>>
 
>>> Hi, no you are certainly not the only one!
 
>>> I have also made an sqlite octave package, but only for private use. I
 
>>> think it is wise to discuss on how to implement the interface to such a
 
>>> toolbox.
 
>>> * should one mimic the c interface?
 
>>> * should one mimic the perl dbi interface?
 
>>> * mimic the matlab database interface?
 
>>> * make a new one?
 
>>> What is your opinion?
 
>>>
 
>>> This is the right place to discuss and send code suggestions.
 
>>>
 
>>> Paul Dreik
 
>>>
 
>> Thanks, Paul - those are good questions.
 
>>
 
>> I assume by "c interface" you mean ODBC?  I believe that would be best,
 
>> but requires more work... I suspect this is the direction Xavier took
 
>> with his database package.
 
>>
 
>> Given a choice between perl, Matlab and "create your own," the community
 
>> would probably prefer a solution that "looks like Matlab." That is,
 
>> without a GUI and no Matlab-specific I/O, I assume.
 
>>
 
>> What do you think?
 
>>
 
> No, I mean the sqlite c interface described in
 
> http://sqlite.org/c3ref/intro.html
 
>
 
> Using odbc seems to be yet another method to connect. It seems like
 
> there is an odbc driver for sqlite.
 
> http://www.sqlite.org/cvstrac/wiki?p=SqliteOdbc
 
> I know the matlab database toolbox can connect through odbc, that is how
 
> I used it a few years ago.
 
>
 
>
 
> I assembled the list below with my comments and links to documentation.
 
>
 
> I think the matlab database toolbox is a bit messy. It is also quite
 
> big, so users expecting to use octave database as a dropin replacement
 
> will probably never be satisfied unless they only use a very basic
 
> subset. It handles multiple databases, which is good.
 
> The documentation is at
 
> http://www.mathworks.se/help/toolbox/database/ug/f4-6010.html
 
>
 
> I like the relatively clean interface of the sqlite c interface. This is
 
> how I built my toolbox. (It was a while ago, so I do not remember how
 
> closely I followed the c interface). Obviously this only supports
 
> sqlite, so It may be a poor choise for octave database toolbox unless it
 
> is an octave sqlite toolbox.
 
> Documentation for api introduction is at http://sqlite.org/cintro.html
 
>
 
> I also like the perl dbi interface. It handles multiple databases, so it
 
> may be a good example on how to make an octave interface.
 
> An easy to read introduction exists at
 
> http://www.perl.com/pub/1999/10/DBI.html
 
>
 
> I have never worked directly to odbc. Looking at the introductory
 
> material on
 
> http://msdn.microsoft.com/en-us/library/windows/desktop/ms714078%28v=vs.85%29.aspx
 
> I say lets stick to any other method...
 
> The good thing is that it handles multiple databases and it is cross
 
> platform.
 
>
 
> The existing octave database package seems to offer both a generic
 
> interface and wrap the database specific apis. I do not know how well it
 
> performs. Installation failed for me two years ago or so, and it still
 
> fails now (octave 3.4.2 from macports. See attached errors). I assume I
 
> do not have all dependencies installed, but the errors seem to point to
 
> other problems. Have not looked deeper into it.
 
> I do not know if there are any plans for it or what the current status
 
> is. Last update on http://octave-swig.sourceforge.net/octave-db.html
 
> (linked to from http://octave.sourceforge.net/database/overview.html)
 
> was 2008, but the package was released 2009.
 
> The swig operations seem like black magic to me.
 
>
 
> I do not currently have the time or need to work on this now, but I am
 
> willing to share my octave package (sqlite c interface wrapped, more or
 
> less).
 
 
 
 
 
On 23 December 2011 13:42, dirk <dirkmayhew@comcast.net> wrote:
 
> On Wed, 2011-12-21 at 19:56 +0000, Carnë Draug wrote:
 
>> Are you able to indetify what's broken in the current package?
 
>
 
> I am not calling it broken,  but "difficult to install" or "not
 
> self-contained" would be fair descriptions.
 
 
 
 
 
 
 
On 29 December 2011 16:21, dirk <dirkmayhew@comcast.net> wrote:
 
> Unfortunately the file size limit prevented me uploading the required
 
> sqlite3.c source file; it is available via
 
> http://www.sqlite.org/sqlite-amalgamation-3070900.zip
 
>
 
> The resulting .oct acts like a dedicated database server.
 
> Functionally it mimics the existing database "sql" function, but
 
> *without* the pre-requirements of SWIG & an additional external database
 
> server oprogram.
 
>
 
> Can anyone can point me to a "beginner's guide to package creation?"
 
> mkoctfile worked fine for me on Ubuntu and Win7, but I'd guess a tar.gz
 
> supporting pkg install would be better/cleaner/more useful.
 
</pre>
 
  
 
== redis ==
 
== redis ==

Revision as of 10:15, 21 March 2014

This Octave Forge has currently no maintainer and is known to nor well anymore.


osdbi

There's another package called osdbi that is released under the BSD license that I was able to make work, but only for sqlite3. You can find it here: http://jriedy.users.sonic.net/cgi/jriedy/cgit/cgit.cgi/osdbi/tree/doc/osdbi.texi JRiedy the author will answer emails. I use it on OS X 10.6 and octave 3.4.0. Also on 10.5.8 but no luck on 10.7


postgreSQL

After some hours trying to connect to postgresql, I am geting convinced there is currently no DB connection to postgresql DB from octave. Indeed, there is a very nice small code for mkoctfile:

  http://dirk.eddelbuettel.com/code/octave-pg/

But, I found there is no longer a libpq++ in postgresql (http://blog.gmane.org/gmane.comp.db.postgresql.interfaces/month=20080701)... Anyone knows if there is a libpqxx interface (I found nothing on google)? In another approach, maybe "extern C" can be used to reimplement a libpq (standard C) based oct of Dirk Eddelbuettel's code?

Embedded SQL

A feature request was open on the tracker to include it as a package.

SQLite

  • go-sqlite – simple sqlite3 wrapper as one .m file.

redis

There's a github repository called go-redis (GNU Octave Redis) that is released under the WTFPL license. It is using Instrument_control package. You can find it here: https://github.com/markuman/go-redis