MariaDB Client for GNU Octave (maybe this is compatible for MySQL and Matlab too)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Markus Bergholz 67404ca7a3 wrong curl url 3 weeks ago
gitlabci update build and test stages and introduce one before_script 3 weeks ago
.drone.yml 2nd drone test 5 months ago
.gitignore add gitignore 3 weeks ago
.gitlab-ci.yml wrong curl url 3 weeks ago
LICENSE Initial commit 8 months ago
Makefile #3 get current mUnittest file 3 weeks ago
README.md update testing 3 months ago
bug.m #2 script to reproduce the error 3 weeks ago
gitlabci.m use mariadb 10.3.10 for testing 3 weeks ago
mariadb.c #2 force return an empty cell 3 weeks ago
mariadb.m #1 hotfix. return empty cell or mat when the query response is empty 4 months ago

README.md

mex mariadb client

pipeline status

Build

$ make
mkoctfile --mex  -L/usr/lib  -lmysqlclient -lpthread -lz -lm -ldl -lssl -lcrypto -I/usr/include/mysql mariadb.c

example

you can take a look at gitlabci.m file too. the classdef file mariadb.m and the mex file mariadb_.mex are both used for testing.

class def example

octave:1> sql = mariadb('hostname', '127.0.0.1', 'password', 'password');
octave:2> sql.query('create database octave')
ans = [](0x0)

to change a database, you can recreate your class
or change the property sql.database = 'octave'.

octave:3> sql = mariadb('hostname', '127.0.0.1', 'password', 'password', 'database', 'octave');
octave:4> sql.query('create table a (idx int)');
octave:5> sql.query('insert into a (idx) values (1),(2),(3),(4)');
octave:6> sql.query('select * from a')
ans =
{
  [1,1] = idx
  [2,1] = 1
  [3,1] = 2
  [4,1] = 3
  [5,1] = 4
}

you can change the output format to matrix

octave:7> sql.output = 'mat'
sql =

<object mariadb>

octave:8> sql.query('select * from a')
ans =

   NaN
     1
     2
     3
     4

octave:9>

return structure

the return structure is always a cell.

octave:1> a = mariadb_('127.0.0.1', 3306, 'root', 'password', 'testdb', 'select * from a')
a =
{
  [1,1] = idx
  [2,1] = 1
  [3,1] = 2
  [4,1] = 8
  [5,1] = 1
  [6,1] = 2
  [7,1] = 8
  [1,2] = b
  [2,2] = NULL
  [3,2] = NULL
  [4,2] = NULL
  [5,2] = 1
  [6,2] = 2
  [7,2] = 3
}
select * from a;

idx |b |
----|--|
1   |  |
2   |  |
8   |  |
1   |1 |
2   |2 |
8   |3 |

mariadb()

properties

  • hostname
    • char, default localhost
  • port
    • number, default 3306
  • username
    • char, default root
  • password
    • char, default password
  • database
    • char, default empty string. Connects to no database
  • command
    • char, sql command
  • is_octave
    • boolean, determines if class was init on matlab or octave
  • output
    • char, defines the output format. currently supports only mat and cell

methods

  • query(command)
    • executes sql command
  • to_mat()
    • only used internally to convert the cell output to matrix format.