Difference between revisions of "Database package"

From Octave
Jump to navigation Jump to search
(import of messages I had on my inbox about database package)
 
(fixing a typo)
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This Octave Forge has currently no maintainer and is known to nor well anymore.
+
== Octave Forge ==
  
 +
Official GNU/Octave Forge Database package supports only '''Postgres'''
  
== osdbi ==
+
* https://octave.sourceforge.io/database/index.html
  
<!-- Posted on the mailing list by Stuart Edwards <sedwards2@cinci.rr.com> -->
+
== 3rd Party ==
  
There's another package called osdbi that is released under the BSD license that I was able to make work, but only for sqlite3.
+
On github/gitlab are several open source projects which supports different open source database solutions for GNU/Octave.
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
 
  
 
+
* '''sqlite'''
== postgreSQL ==
+
** [https://github.com/rmartinjak/mex-sqlite3 mex-sqlite3] – An extension for MATLAB® or GNU/octave to access sqlite3 databases
 
+
** [https://github.com/Andy1978/octave-sqlite octave-sqlite] - sqlite3 wrapper as an .oct file for GNU/Octave
<!-- Posted on the mailing list by Miguel <nunocavalheiromarques@gmail.com> -->
+
* '''redis'''
 
+
** [https://gitlab.com/markuman/go-redis go-redis] - mex file extension for GNU/Octave to access Redis
After some hours trying to connect to postgresql, I am geting convinced
+
* '''MariaDB''' / MySQL
there is currently no DB connection to postgresql DB from octave. Indeed,
+
** [https://gitlab.com/markuman/mex-mariadb mex-mariadb] - mex file extension for GNU/Octave to access MariaDB
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 [https://sourceforge.net/p/octave/feature-requests/30/ feature request] was open on the tracker to include it as a package.
 
 
 
== SQLite ==
 
 
 
<!-- Posted on the mailing list by Paul Dreik <slask@pauldreik.se> -->
 
 
 
<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>
 

Latest revision as of 09:40, 1 June 2019

Octave Forge[edit]

Official GNU/Octave Forge Database package supports only Postgres

3rd Party[edit]

On github/gitlab are several open source projects which supports different open source database solutions for GNU/Octave.

  • sqlite
    • mex-sqlite3 – An extension for MATLAB® or GNU/octave to access sqlite3 databases
    • octave-sqlite - sqlite3 wrapper as an .oct file for GNU/Octave
  • redis
    • go-redis - mex file extension for GNU/Octave to access Redis
  • MariaDB / MySQL
    • mex-mariadb - mex file extension for GNU/Octave to access MariaDB