CMake iOS build for Firebird 3
Egor Pugin announced on Firebird-Devel list :
With new CMake 3.2.1 it is possible to successfully build Firebird for
iOS platform using CMake.
Updated instructions for iOS build available at
https://bitbucket.org/egor_pugin/firebird_cmake/wiki/Home
The last issue you encounter during building is duplicate symbol error
from clang. It is related to class DatabaseDirectoryList in anonymous
namespace. This class exists in files: src/jrd/jrd.cpp and
src/common/db_alias.cpp.
For my tests I added last underscore symbol to one of those classes
and the build completes.
Firebird 2015 Tour: SQL Optimization
We invite all Firebird developers and administrators to 1-day seminars in the frames of Firebird 2015 Tour. Firebird 2015 Tour is devoted to the SQL performance optimization: SQL plans, queries and database statistics, queries tuning techniques, etc.
Firebird 2015 Tour is organized by IBSurgeon and IBPhoenix, with support of Firebird Developers core team.
Locations and dates of Firebird 2015 Tour (see details in the appropriate sections below):
- April 24 – Seligenstadt, Germany
- May 19 – Prague, Czech Republic
- June 5 – Moscow, Russia
Read more details about Firebird 2015 Tour here: www.firebirdsql.org/en/firebird-tour-2015/
Time to try Firebird for Android
In a private email exchange to Alex Peshkov, he allowed be to publish his “cloud” link, containing a test version of Firebird 3 for Android.
Archives with tools for accessing databases in embedded mode are available at https://cloud.mail.ru/public/0b09cf605ed8/FbAndr
Note that Embedded can be used also as a client to access remote Firebird servers.
Embedded version should be _embedded_ into target application. It’s not installed separately. It can be accessed by the well known ISC API, and there is also the new OO API.
Alex need people to try it out and report/comment about problems, etc.
If you expect to see an official Android Firebird build in the future, you must start helping testing and sending feedback.
Nodejs Firebird driver version 0.6.0 is released with critical problem with Transactions fixed
GSOC 2015 Finish Firebird Libreoffice driver integration
There is a medium difficulty task for a c++ programmer in current GSOC 2015
The Firebird driver for LibreOffice was started, and is mostly functional, in a previous GSoC, but it needs finishing and polishing. The main remaining issue is that the firebird data format embedded in the .odb file is endianess-dependent. The idea is to switch to Firebird’s “archive” format that is not.
Required skills / knowledge
C++, SQL, Reading other’s code, capacity to work autonomously.
Difficulty
medium
Potential mentors
Lionel Elie Mamane, IRC: schoinobates, mail: lionel AT mamane DOT lu
Standard deviation and variance contributed by Hajime Nakagami
Improve your favourite Open Source RDBMS with github pull requests and patches .
Here’s a contribution to Firebird core standard deviation and variance buff.ly/1Ek2m0h
BenchmarkSQL for Firebird
Roman Simakov announced BenchmarkSQL for Firebird
I’ve ported BenchmarkSQL for Firebird. It’s TPC-C test working via
JDBC and support PostgreSQL, Oracle, DB2 and now Firebird.
https://github.com/romansimakov/BenchmarkSQL
I could run it locally and maybe it could be useful to know where we
are comparing to other DBMSs.
Please share you investigations.
Firebird 3 API demo usage with Pascal
Adriano dos Santos Fernandes (on the Firebird Development list): “I just built an example of Firebird 3 API usage with FreePascal. As said earlier, working with input/output buffers directly in non-C/C++ is difficult. This requires auxiliary classes. The others things seem ok and easy to use. We need some new functions in the new API, for example, to convert.” status vectors to strings, but this is not specific to Pascal.
Nodejs Firebird driver version 0.5.1 is released with support for Service Manager functions
node-firebird 0.5.1 released with the following functions implemented for Service Manager:
backup
restore
fixproperties
serverinfo
database validation
commit transaction
rollback transaction
recover transaction
database stats
users infos
user actions (add modify remove)
get firebird file log
tracing
List of functions implemeted :
// each row : fctname : [params], typeofreturn
var fbsvc = {
"backup" : { [ "options"], "stream" },
"nbackup" : { [ "options"], "stream" },
"restore" : { [ "options"], "stream" },
"nrestore" : { [ "options"], "stream" },
"setDialect": { [ "database","dialect"], "stream" },
"setSweepinterval": { [ "database","sweepinterval"], "stream" },
"setCachebuffer" : { [ "database","nbpagebuffers"], "stream" },
"BringOnline" : { [ "database"], "stream" },
"Shutdown" : { [ "database","shutdown","shutdowndelay","shutdownmode"], "stream" },
"setShadow" : { [ "database","activateshadow"], "stream" },
"setForcewrite" : { [ "database","forcewrite"], "stream" },
"setReservespace" : { [ "database","reservespace"], "stream" },
"setReadonlyMode" : { [ "database"], "stream" },
"setReadwriteMode" : { [ "database"], "stream" },
"validate" : { [ "options"], "stream" },
"commit" : { [ "database", "transactid"], "stream" },
"rollback" : { [ "database", "transactid"], "stream" },
"recover" : { [ "database", "transactid"], "stream" },
"getStats" : { [ "options"], "stream" },
"getLog" : { [ "options"], "stream" },
"getUsers" : { [ "username"], "object" },
"addUser" : { [ "username", "password", "options"], "stream" },
"editUser" : { [ "username", "options"], "stream" },
"removeUser" : { [ "username","rolename"], "stream" },
"getFbserverInfos" : { [ "options", "options"], "object" },
"startTrace" : { [ "options"], "stream" },
"suspendTrace" : { [ "options"], "stream" },
"resumeTrace" : { [ "options"], "stream" },
"stopTrace" : { [ "options"], "stream" },
"getTraceList" : { [ "options"], "stream" },
"hasActionRunning" : { [ "options"], "object"}
}
this is an example to use with stream and object
fb.attach(_connection, function(err, svc) {
if (err)
return;
// all function that return a stream take two optional parameter
// optread => byline or buffer byline use isc_info_svc_line and buffer use isc_info_svc_to_eof
// buffersize => is the buffer for service manager it can't exceed 8ko (i'm not sure)
svc.getLog({optread:'buffer', buffersize:2048}, function (err, data) {
// data is a readablestream that contain the firebird.log file
console.log(err);
data.on('data', function (data) {
console.log(data.toString());
});
data.on('end', function() {
console.log('finish');
});
});
// an other exemple to use function that return object
svc.getFbserverInfos(
{
"dbinfo" : true,
"fbconfig" : true,
"svcversion" : true,
"fbversion" : true,
"fbimplementation" : true,
"fbcapatibilities" : true,
"pathsecuritydb" : true,
"fbenv" : true,
"fbenvlock" : true,
"fbenvmsg" : true
}, {}, function (err, data) {
console.log(err);
console.log(data);
});
});

