kyamagu / matlab-sqlite3-driver Goto Github PK
View Code? Open in Web Editor NEWMatlab driver for SQLite3 database
License: Other
Matlab driver for SQLite3 database
License: Other
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
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.
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.
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
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([...
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!
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 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.
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
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.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.