Code Monkey home page Code Monkey logo

matlab-sqlite3-driver's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

matlab-sqlite3-driver's Issues

Can't Delete DB Files (after close)

I get a warning message "Warning: File not found or permission denied" and db files can't be deleted until Matlab is closed.

Running Matlab 2013a, 64-bit, Windows 7, compiled with Visual C++ 2012

Software versioning

HI,

First of all, thanks for your work. Really great stuff.

Regarding your software, why not adopt a software versioning scheme? It would benefit greatly those who are willing to adopt it but need to track upgrades and control possible compatibility issues.

Combination of MATLAB release and OS forces restriciton on C++ compiler

First of all, thanks for the excellent work put into this sqlite3 driver. Really great stuff.

Regarding the issue, I've noticed that some MATLAB releases impose some restrictions on which compilers they support. As a consequence, some MATLAB releases appear to be unable to compile C++11 and C++14 code. In practice, this means that it isn't possible to install the matlab-sqlite3-driver on MATLAB 2015a running on operating systems such as Debian7 and Debian8.

Time issue when selecting several columns

Hello,

first thank you for this great work, the API is really easy to use and it's a pleasure the I'm now able to extract data from my colleagues' files without asking them to export to csv...

I noticed that the time needed to extract several columns at a time was more than the time needed to extract these columns separately. In my case, if I extract 6 columns at a time it takes me about 1.2 seconds, and if I extract 6 times 1 column it takes 0.4 seconds overall. In the end it can make quite a difference.

It's not a problem to do that for me, it's just a little bit less convenient and pretty to copy/paste the SELECT line. Is this something related to sqlite or to your API ?

Best,

Florent

Cannot compile in Matlab 2014b on OS X 10.8.5

If i try to compile using mex i get the following error

sqlite3.make

mex -c -Iinclude src/sqlite3/sqlite3.c -outdir src/sqlite3
Building with 'Xcode with Clang'.
MEX completed successfully.
mex -Iinclude src/api.cc src/sqlite3mex.cc src/sqlite3/sqlite3.o -output +sqlite3/private/libsqlite3_
Building with 'Xcode Clang++'.
Error using mex
In file included from /Users/napopa/Downloads/matlab-sqlite3-driver-master/src/api.cc:6:
In file included from include/mexplus.h:9:
In file included from include/mexplus/arguments.h:33:
In file included from include/mexplus/mxarray.h:53:
include/mexplus/mxtypes.h:10:10: fatal error: 'type_traits' file not found
#include <type_traits>
         ^
1 error generated.


Error in sqlite3.make>dispAndEval (line 40)
  eval(command);

Error in sqlite3.make (line 14)
      dispAndEval([...

Not compiling in Windows 10

Hi everyone, I'm getting the following error when attempting to compile the mex file.

`Error using mex
api.cc
include\mexplus/mxarray.h(120): warning C4800: 'mxArray *': forzando el valor a bool 'true' o 'false' (advertencia de
rendimiento)
include\mexplus/mxarray.h(168): warning C4800: 'mxArray *': forzando el valor a bool 'true' o 'false' (advertencia de
rendimiento)
include\mexplus/mxarray.h(497): warning C4267: 'return': conversi¢n de 'size_t' a 'mwSize'; posible p‚rdida de datos
include\mexplus/mxarray.h(511): warning C4267: 'return': conversi¢n de 'size_t' a 'mwSize'; posible p‚rdida de datos
include\mexplus/mxarray.h(514): warning C4267: 'return': conversi¢n de 'size_t' a 'mwSize'; posible p‚rdida de datos
include\mexplus/mxarray.h(556): warning C4267: 'argumento': conversi¢n de 'size_t' a 'int'; posible p‚rdida de datos
Unknown compiler version - please run the configure tests and report the results
include\boost/mpl/assert.hpp(149): error C2143: error de sintaxis: falta ';' delante de '<'
include\boost/mpl/assert.hpp(153): note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::eval_assert' que se est  compilando
include\boost/mpl/assert.hpp(149): error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite
default-int
include\boost/mpl/assert.hpp(152): error C2238: s¡mbolos (token) inesperados delante de ';'
include\boost/mpl/assert.hpp(159): error C2143: error de sintaxis: falta ';' delante de '<'
include\boost/mpl/assert.hpp(163): note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::eval_assert_not' que se est  compilando
include\boost/mpl/assert.hpp(159): error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite
default-int
include\boost/mpl/assert.hpp(162): error C2238: s¡mbolos (token) inesperados delante de ';'
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux_/preprocessed/plain/arg.hpp(45):
error C2039: 'assert_not_arg': no es un miembro de 'boost::mpl'
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/equal.hpp(35):
note: vea la declaraci¢n de 'boost::mpl'
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp(49):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::arg<1>::apply<T1,T2,boost::mpl::na,boost::mpl::na,boost::mpl::na>' que se est  compilando
with
[
T1=boost::mpl::l_end,
T2=int64
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/apply.hpp(63):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply_wrap2boost::mpl::protect<boost::mpl::arg<1,0>,T1,T2>' que se est  compilando
with
[
T1=boost::mpl::l_end,
T2=int64
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/reverse_fold_impl.hpp(162):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply2<ForwardOp,boost::mpl::l_end,int64>' que se est  compilando
with
[
ForwardOp=boost::mpl::arg<1>
]
include\boost/mpl/reverse_fold.hpp(41): note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::aux::reverse_fold_impl<5,boost::mpl::l_iter<boost::mpl::list5<T0,T1,T2,T3,T4>>,boost::mpl::l_iterboost::mpl::l_end,State,BackwardOp,ForwardOp>'
que se est  compilando
with
[
T0=int64,
T1=double,
T2=std::basic_string<char,std::char_traits,std::allocator>,
T3=std::vector<uint8_t,std::allocator<uint8_t>>,
T4=sqlite3mex::NullValue,
State=boost::mpl::l_end,
BackwardOp=boost::mpl::bind2boost::mpl::lambda<boost::mpl::push_frontboost::mpl::na,boost::mpl::na,boost::mpl::void_::type,boost::mpl::1,boost::mpl::bind1<boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1boost::unwrap_recursive,boost::mpl::void_,boost::mpl::arg<1>>,0>,boost::mpl::2>>,
ForwardOp=boost::mpl::arg<1>
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/transform.hpp(65):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::reverse_fold<Seq,boost::mpl::l_end,boost::mpl::bind2<boost::mpl::lambda<boost::mpl::push_frontboost::mpl::na,boost::mpl::na,boost::mpl::void
>::type,boost::mpl::1,boost::mpl::bind1boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>>,boost::mpl::arg<1>>'
que se est  compilando
with
[
Seq=boost::mpl::list5<int64,double,std::basic_string<char,std::char_traits,std::allocator>,std::vector<uint8_t,std::allocator<uint8_t>>,sqlite3mex::NullValue>,
F=boost::unwrap_recursive,
Tag=boost::mpl::void

]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/transform.hpp(113):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::aux::reverse_transform1_impl<P1,P2,boost::mpl::front_inserter<boost::mpl::clear_implboost::mpl::aux::list_tag::apply::type>>'
que se est  compilando
with
[
P1=boost::mpl::list5<int64,double,std::basic_string<char,std::char_traits,std::allocator>,std::vector<uint8_t,std::allocator<uint8_t>>,sqlite3mex::NullValue>,
P2=boost::unwrap_recursiveboost::mpl::1,
Sequence=boost::mpl::list5<int64,double,std::basic_string<char,std::char_traits,std::allocator>,std::vector<uint8_t,std::allocator<uint8_t>>,sqlite3mex::NullValue>
]
include\boost/mpl/eval_if.hpp(41): note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::transform1<Seq1,Seq2OrOperation,OperationOrInserter>' que se est  compilando
with
[
Seq1=boost::mpl::list5<int64,double,std::basic_string<char,std::char_traits,std::allocator>,std::vector<uint8_t,std::allocator<uint8_t>>,sqlite3mex::NullValue>,
Seq2OrOperation=boost::unwrap_recursiveboost::mpl::1,
OperationOrInserter=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/transform.hpp(138):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::eval_ifboost::mpl::or
<boost::mpl::is_na<boost::mpl::na,boost::mpl::is_lambda_expression,boost::mpl::not_boost::mpl::is_sequence,boost::mpl::false
,boost::mpl::false
>,boost::mpl::transform1<Seq1,Seq2OrOperation,OperationOrInserter>,boost::mpl::transform2<Seq1,Seq2OrOperation,OperationOrInserter,Inserter>>'
que se est  compilando
with
[
Seq2OrOperation=boost::unwrap_recursiveboost::mpl::1,
Seq1=boost::mpl::list5<int64,double,std::basic_string<char,std::char_traits,std::allocator>,std::vector<uint8_t,std::allocator<uint8_t>>,sqlite3mex::NullValue>,
OperationOrInserter=boost::mpl::na,
Inserter=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/variant/variant.hpp(1178):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::transformboost::mpl::list5<T0,T1,T2,T3,T4,boost::unwrap_recursiveboost::mpl::1,boost::mpl::na,boost::mpl::na>'
que se est  compilando
with
[
T0=int64,
T1=double,
T2=std::basic_string<char,std::char_traits,std::allocator>,
T3=std::vector<uint8_t,std::allocator<uint8_t>>,
T4=sqlite3mex::NullValue
]
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\utility(198): note: vea la referencia a la creaci¢n de
instancias de plantilla de clase
'boost::variantsqlite3mex::IntegerValue,sqlite3mex::FloatValue,sqlite3mex::TextValue,sqlite3mex::BlobValue,sqlite3mex::NullValue,boost::detail::variant::void
,boost::detail::variant::void
,boost::detail::variant::void
,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void'
que se est  compilando
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\deque(997): note: vea la referencia a la creaci¢n de
instancias de plantilla de clase
'std::pair<int,boost::variantsqlite3mex::IntegerValue,sqlite3mex::FloatValue,sqlite3mex::TextValue,sqlite3mex::BlobValue,sqlite3mex::NullValue,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_>'
que se est  compilando
include\sqlite3mex.h(42): note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'std::dequesqlite3mex::Value,std::allocator<Ty>' que se est  compilando
with
[
Ty=sqlite3mex::Value
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/arg.hpp(45):
error C3861: 'assert_not_arg': no se encontr¢ el identificador
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/arg.hpp(63):
error C2039: 'assert_not_arg': no es un miembro de 'boost::mpl'
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/equal.hpp(35):
note: vea la declaraci¢n de 'boost::mpl'
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/apply_wrap.hpp(80):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase 'boost::mpl::arg<2>::apply<T1,T2,T3,T4,T5>'
que se est  compilando
with
[
T1=boost::mpl::l_end,
T2=sqlite3mex::NullValue,
T3=boost::mpl::na,
T4=boost::mpl::na,
T5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/bind.hpp(50):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply_wrap5boost::mpl::arg<2,U1,U2,U3,U4,U5>' que se est  compilando
with
[
U1=boost::mpl::l_end,
U2=sqlite3mex::NullValue,
U3=boost::mpl::na,
U4=boost::mpl::na,
U5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/bind.hpp(143):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::aux::resolve_bind_argboost::mpl::arg<2,U1,U2,U3,U4,U5>' que se est  compilando
with
[
U1=boost::mpl::l_end,
U2=sqlite3mex::NullValue,
U3=boost::mpl::na,
U4=boost::mpl::na,
U5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/apply_wrap.hpp(80):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::bind1boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>::apply<T1,T2,T3,T4,T5>'
que se est  compilando
with
[
F=boost::unwrap_recursive,
Tag=boost::mpl::void
,
T1=boost::mpl::l_end,
T2=sqlite3mex::NullValue,
T3=boost::mpl::na,
T4=boost::mpl::na,
T5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/bind.hpp(160):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply_wrap5boost::mpl::bind1<boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>,U1,U2,U3,U4,U5>'
que se est  compilando
with
[
F=boost::unwrap_recursive,
Tag=boost::mpl::void
,
U1=boost::mpl::l_end,
U2=sqlite3mex::NullValue,
U3=boost::mpl::na,
U4=boost::mpl::na,
U5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/bind.hpp(206):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::aux::resolve_bind_argboost::mpl::bind1<boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>,U1,U2,U3,U4,U5>'
que se est  compilando
with
[
F=boost::unwrap_recursive,
Tag=boost::mpl::void
,
U1=boost::mpl::l_end,
U2=sqlite3mex::NullValue,
U3=boost::mpl::na,
U4=boost::mpl::na,
U5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp(49):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::bind2boost::mpl::lambda<boost::mpl::push_frontboost::mpl::na,boost::mpl::na,boost::mpl::void_::type,boost::mpl::1,boost::mpl::bind1boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>>::apply<T1,T2,boost::mpl::na,boost::mpl::na,boost::mpl::na>'
que se est  compilando
with
[
F=boost::unwrap_recursive,
Tag=boost::mpl::void
,
T1=boost::mpl::l_end,
T2=sqlite3mex::NullValue
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/apply.hpp(63):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply_wrap2boost::mpl::bind2<boost::mpl::lambda<boost::mpl::push_frontboost::mpl::na,boost::mpl::na,boost::mpl::void_::type,boost::mpl::1,boost::mpl::bind1boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>>,T1,T2>'
que se est  compilando
with
[
F=boost::unwrap_recursive,
Tag=boost::mpl::void
,
T1=boost::mpl::l_end,
T2=sqlite3mex::NullValue
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/reverse_fold_impl.hpp(58):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply2<BackwardOp,boost::mpl::l_end,sqlite3mex::NullValue>' que se est  compilando
with
[
BackwardOp=boost::mpl::bind2boost::mpl::lambda<boost::mpl::push_frontboost::mpl::na,boost::mpl::na,boost::mpl::void_::type,boost::mpl::_1,boost::mpl::bind1<boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1boost::unwrap_recursive,boost::mpl::void_,boost::mpl::arg<1>>,0>,boost::mpl::2>>
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/arg.hpp(63):
error C3861: 'assert_not_arg': no se encontr¢ el identificador

Error in sqlite3.make>dispAndEval (line 40)
eval(command);

Error in sqlite3.make (line 14)
dispAndEval([...`

When I run "mex -setup" I get this:

`MEX configured to use 'Microsoft Visual C++ 2015 Professional (C)' for C language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.

To choose a different C compiler, select one from the following:
Microsoft Visual C++ 2015 Professional (C) mex -setup:C:\Users\Julio\AppData\Roaming\MathWorks\MATLAB\R2015b\mex_C_win64.xml C
Microsoft Windows SDK 7.1 (C) mex -setup:'C:\Program Files\MATLAB\R2015b\bin\win64\mexopts\winsdk-7.1_c.xml' C

To choose a different language, select one from the following:
mex -setup C++
mex -setup FORTRAN`

And one final question, if I compile the code in my computer, will I be able to use it in other Windows system running Matlab?

Thank you in advance for your help!

not compiling on Debian GNU/Linux

Hi,
I'm trying to compile matlab-sqlite3-driver on Debian (Jessie), but get this, see below.
Any idea what might me going wrong?
Thanks,
Christian

>> sqlite3.make
mex -c -Iinclude src/sqlite3/sqlite3.c -outdir src/sqlite3

Warning: You are using gcc version "4.9.1".  The version
         currently supported with MEX is "4.7.x".
         For a list of currently supported compilers see: 
         http://www.mathworks.com/support/compilers/current_release/

mex -Iinclude src/api.cc src/sqlite3mex.cc src/sqlite3/sqlite3.o -output +sqlite3/private/libsqlite3_ -ldl -lboost_regex CXXFLAGS="$CXXFLAGS -std=c++11"

Warning: You are using gcc version "4.9.1".  The version
         currently supported with MEX is "4.7.x".
         For a list of currently supported compilers see: 
         http://www.mathworks.com/support/compilers/current_release/

/usr/bin/ld: api.o: relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
api.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status

    mex: link of ' "+sqlite3/private/libsqlite3_.mexa64"' failed.

Unable to complete successfully.

Error in sqlite3.make>dispAndEval (line 40)
  eval(command);

Error in sqlite3.make (line 14)
      dispAndEval([...

Embedded zeros terminate BLOB's

Embedded zeros in values inserted for BLOB fields in a table get truncated.
I was planning to store arbitrary data (eg. .mat files) as blobs.

When retrieved the blobs end just before encountering the first embedded zero, which ruins the entire idea of storing arbitrary binary data.

Is there a workaround for this? I'd do it myself, but my C skills are poor to non-existing.

ldd: command not found

Hi!

Great work with the drivers! This is exactly what I have been looking for, so keep up the good work :)

I've got one issue though,

When I run

!ldd +sqlite3/private/libsqlite3_.mex*

in the Matlab terminal I get the following response:

/bin/bash: ldd: command not found

Thus, I can't run sqlite3.make without crashing (locked by mexLock API.)

Do you have a solution to this? I've tried starting matlab by copying and pasting the preload line to the terminal but that didn't help.

I appreciate all the help I can get and I'm sure my issues are just a result of me being a complete idiot :)

Best,

Max

Vectorized insert?

It seems like the current insert statements are not vectorized. It seems like this should be a possibility. Currently, I'm running

sqlite3.execute(db,'create table v(v REAL)');
for i=1:numel(v);
    sqlite3.execute(db,'insert into v(v) values (?)', v(i));
end

to store a vector, which is REALLY slow;especially because the entire file must be written on each insert.

std regex in gcc4.8 not working

I had a problem with std::regex. I built the project on Ubuntu with gcc4.8, but when I run test/test_sqlite3.m, the 3rd test fails:

PASS: test_functional_1
PASS: test_functional_2
FAIL: test_functional_3
Unexpected Standard exception from MEX file.
What() is:regex_error
..

Error in sqlite3.execute (line 22)
    results = libsqlite3_('execute', varargin{1}, varargin(2:end));

Error in test_sqlite3>test_functional_3 (line 71)
  record = sqlite3.execute('SELECT * FROM records');

Error in test_sqlite3 (line 7)
      tests{i}();

I saw that you switched to std::regex for gcc4.8 -- the following snippet is from src/sqlite3mex.cc

#if !_MSC_VER && !__clang__ && (__GNUC__ < 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ < 8)))
#include <boost/regex.hpp>
using boost::regex;
using boost::regex_replace;
#else
#include <regex>
#endif

I recompiled the project using <boost/regex.hpp> by removing the #if, and it works. All tests pass in this case.

System: Ubuntu 14.04, gcc4.8.4, boost 1.55, Matlab 2015a

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.