SSブログ

Firebird 4.0 RC1 released [Firebird]

毎年の Firebird Advent Calendar で
「今年も 4.0 RC1 は出ませんでした」
が風物詩になっていたが、ついに出た。
https://firebirdsql.org/en/news/firebird-4-0-release-candidate-1-is-available-for-testing/
https://www.firebirdnews.org/firebird-4-rc1/

Firebird 3.0 が最初にリリースされたのいつだっけ?と思って調べたら2016年4月だった
https://firebirdsql.org/en/news/firebird-3-0-is-released/

希望を言えば、今年中に Firebird 4.0 がリリースされて、 Ubuntu 22.04 に Firebird4.0 のパッケージが含まれると嬉しいが、難しいと思っている。

とにかくリリースできてよかった(ファイナルリリースは、計画も含めて、時期はまだ未定だけど)
OSS の RDBMS といえば、 MySQL (と MariaDB)と PostgreSQL が有名だが、選択肢は多いほうがいい。

Firebird3.0 の当初の計画で実装される予定だったレプリケーションのなど機能が 4.0 で実装されているはずで、もう10年くらいかかっていると思う。
RC1 以降は、サーバーとクライアントでやりとりするワイヤープロトコルの変更はないと思うので、データーベースドライバの 4.0 対応のゴールが見えた。

後でリリースノートを読む。
コメント(0) 
共通テーマ:日記・雑感

Products.FirebirdDA 0.7.0 [Firebird]

これは、Firebird Advent Calendar 2020 の20日目の記事です
https://qiita.com/advent-calendar/2020/firebird

今年は Zope 向け Firebird Database Adapter である Products.FirebirdDA を6年半振りにリリースしました。

- https://nakagami.blog.ss-blog.jp/2020-06-20
- https://pypi.org/project/Products.FirebirdDA/

Zope がバージョン4になって Python3 対応が必要になったためです。
Zope 5 でも動くと思います。
Zope4/Zope5 で動かなかったら、リポジトリ https://github.com/nakagami/Products.FirebirdDA で Issue を作成してください。

Firebird の Object (テーブル、カラムなど)の情報を表示していた Browser タブは、Firebird のバージョンが上がるにつれ不完全になってしまっていて、メンテナンスする余裕がないので、削除してしまいました。
必要があれば、Browser タブの代わりに Framerobin などを使ってください。
コメント(0) 
共通テーマ:日記・雑感

DB-Engines Ranking の Firebird [Firebird]

これは、Firebird Advent Calendar 2020 の13日目の記事です
https://qiita.com/advent-calendar/2020/firebird

DB-Engines Ranking というページがありまして
https://db-engines.com/en/ranking
機械的にデーターベースサーバーのスコアを出してランキングしているものです。
毎月、月初にスコアとランキングが更新されるのですが、私は数年間、月が変わるタイミングでこのページの Firebird のスコアとランキングを見て一喜一憂しています。

2〜3年前までは順位を落とし続け 32位までランキングを下げた時期もあったのですが、その後一進一退を続け、今月は29位(久々の 30位以内)でした。
日本ではほとんど無名ですが、健闘してるんではないでしょうか?

ランキングは他のデーターベースサーバーの人気次第なので一喜一憂しても仕方ない面も多々あります。

私は、ランキングよりもスコアをより気にしているんですが、こちらは、現在 22.833 で 2015年の過去最高記録の 23.424 に、あと少しというところまで来てます。
https://db-engines.com/en/ranking_trend/system/Firebird
コメント(0) 
共通テーマ:日記・雑感

pyfirebirdsql 1.1.4 released [Firebird]

これは、Firebird Advent Calendar 2020 の6日目の記事です
https://qiita.com/advent-calendar/2020/firebird

pure python な Firebird driver である pyfirebirdsql の 1.1.4 をリリースしました

https://github.com/nakagami/pyfirebirdsql
https://pypi.org/project/firebirdsql/

前回リリースの 1.1.3 は1年以上前ですが、今回のリリースは Firebird4.0 向けの軽微な修正(と、みんなが使っていないであろう接続パラメーターの不具合の修正)です。
ほとんどの人には関係なく、今、使っている人は、特に最新に更新する必要はないと思います。
Firebird 4.0RC1 がリリースされたら、次のバージョンをリリースしようと思っていたのですが Firebird Advent Calendar の季節になっても RC1 がリリースされないので、最新のスナップショットをリリースしておきます。

ドライバーとしての機能を追加する予定は今のところなく、Firebirdのバージョンが上がるときに加えられたネットワークプロトコル上の機能追加は、できれば対応していきたいと思っています。
コメント(0) 
共通テーマ:日記・雑感

What's Firebird Advent Calendar [Firebird]

This article is the 1st entry of Firebird Advent Calendar 2020.
https://qiita.com/advent-calendar/2020/firebird

In Japan, the Advent Calendar is known as a registered tech blog entries on the December calendar page.
(Advent calendars in the true sense of the word are not well known.)

The Firebird Advent Calendar has written about Firebird RDBMS, and has been going on since December 2014.

- https://qiita.com/advent-calendar/2014/firebird
- https://qiita.com/advent-calendar/2015/firebird
- https://qiita.com/advent-calendar/2016/firebird
- https://qiita.com/advent-calendar/2017/firebird
- https://qiita.com/advent-calendar/2018/firebird
- https://qiita.com/advent-calendar/2019/firebird

If you can't read Japanese, try to read it using a translation site.

Those who want to post need join on Qiita and reserve a specific date on the Advent Calender page.
Then publish the post on your blog on the reserved date and enter its URL.

This year, @marius has reserved Dec 5. (thanks @marius!)
Most Japanese write in Japanese, but articles may be written in English.

The messages in Qiita are in Japanese, so it is difficult to join and reserver if you don't understand Japanese,
but you are welcome to join Firebird Advent Calendar!
コメント(0) 
共通テーマ:日記・雑感

Ubuntu 20.04 にソースからとインストーラーからインストール [Firebird]

Ubuntu 20.04 でパッケージで入れらるのは firebird3.0-server

最初にソースからのインストールを試みた

sudo apt update
sudo apt install -y libtommath1 libtommath-dev libtomcrypt-dev libncurses5 libncurses5-dev zlib1g-dev libicu-dev libreadline-dev
sudo apt install -y unzip autoconf cmake libtool g++ btyacc

これらのパッケージを入れれば
https://nakagami.blog.ss-blog.jp/2017-12-10 と同じように、
下のコマンドでソースからインストールできると思ったのだが、

git clone git@github.com:FirebirdSQL/firebird.git
cd firebird
./autogen.sh --prefix=/opt/firebird
make
sudo make install

sudo make install でエラー出る。そのうち調べる。

方針を変えて、インストーラでのインストールを試みる

ここ↓にあるインストーラーから Firebird 4.0 Beta1 を入れる。
https://firebirdsql.org/en/firebird-4-0-0-beta1/

wget http://web.firebirdsql.org/downloads/prerelease/v40beta1/Firebird-4.0.0.1436-Beta1.amd64.tar.gz
tar zxf Firebird-4.0.0.1436-Beta1.amd64.tar.gz
cd Firebird-4.0.0.1436-Beta1.amd64
sudo ./install.sh

・・・ただし、 http://tracker.firebirdsql.org/browse/CORE-5445 の、これ↓が必要だった
sudo ln -sf /usr/lib/x86_64-linux-gnu/libtommath.so.1 /usr/lib/x86_64-linux-gnu/libtommath.so.0


(追記)
ソースからのインストールについては
/etc/ld.so.conf に
/opt/firebird/lib

の1行を追加したらうまくいった

コメント(0) 
共通テーマ:日記・雑感

2019年のerlang/elixir Firebird データーベースドライバー [Firebird]

この記事は Firebird Advent Calendar 2019 https://qiita.com/advent-calendar/2019/firebird の 22日目の記事です

erlang の Firebird データーベースドライバーを書いていて、メンテナンスしています
https://github.com/nakagami/efirebirdsql
・・・とはいっても、最近何もしてないなあと思って、ログを調べると、今年前半にはリファクタリングしたり
Srp256 や decfloat 対応(どちらも Firebird4.0 のための機能) をしたりしてました。
開発バージョンの Firebird を使っている人でなければ関係ない部分の修正でした。

Elixir については、すべてを書く気力がなかったので、上記のerlang ドライバーの関数を呼ぶドライバーを書きました。
https://github.com/nakagami/firebirdex
これ、随分前に書いた記憶だったのですが、開発を開始したのが今年の2月だったようです。

最近、これらのコードは触ってなくて、ほかには erlang/elixir を書く機会がないのでだいぶ忘れてきました。
Firebird 関係なく、erlang/elixir を書く機会があると嬉しいなぁと思う今日この頃です。

コメント(0) 
共通テーマ:日記・雑感

2019年の Go言語の firebird データベースドライバー更新状況 [Firebird]

この記事は Firebird Advent Calendar 2019 https://qiita.com/advent-calendar/2019/firebird の 21日目の記事です

今年の firebirdsql https://github.com/nakagami/firebirdsql は、以下のような修正をしたようです。

1. begin/commit の対応がとれていない不具合の修正
2. Event https://nakagami.blog.ss-blog.jp/2016-12-09 のサポート
3. column_name_to_lower の実装( OR マッパー向け)
4. Firebird 4.0 の decfloat (精度の高い decimal型)のサポート

1. は https://github.com/nakagami/firebirdsql/pull/91
2. は https://github.com/nakagami/firebirdsql/pull/92
で Pull Request をもらったものです。
Pull Request もらうことなんてほとんどないので、大変うれしかったです。

コメント(0) 
共通テーマ:日記・雑感

JA 福岡市の LibreOffice ver6.0 Base マニュアル [Firebird]


この記事は Firebird Advent Calendar 2019 https://qiita.com/advent-calendar/2019/firebird の 15日目の記事です

JA 福岡市が公開している LibreOffice のマニュアルのできが良いらしいことは知っていたのですが、この10月に、埋め込み Firebird に対応したマニュアルが追加されました。やったー

この https://www.ja-fukuoka.or.jp/libre/ 中にある
- LibreOffice ver6.0 Base マニュアル(入門編)
- LibreOffice ver6.0 Base マニュアル(データ加工・事務処理編)
の2つが、埋め込み Firebird に対応したものです。
さらに、下のほうにある 「LibreOffice_Baseマニュアル」が HSQLDB 版で、それの Firebird に対応したもののようです。

(入門編)は、Base に限らず、リレーショナルデーターベースの基本的な説明がされていて Base ユーザーに限らず RDBMS 入門的な読み方のできる良い内容だと思います。
(それがFirebird を例に説明されているので、Firebird Advent Calendar 的には、なお良し)


(データ加工・事務処理編)は、Base の使い方(機能)説明なので、Base を使わない RDBMS 入門ユーザーに直接役に立つことはあまりありませんが、10.~14. は、SQL文を書く人にも役に立つと思います。

コメント(0) 
共通テーマ:日記・雑感

LibreOffice の Base と Firebird [Firebird]

この記事は Firebird Advent Calendar 2019 https://qiita.com/advent-calendar/2019/firebird と LibreOffice Advent Calendar 2019 の https://adventar.org/calendars/4230 の 14日目の記事です

昨年の Firebird Advent Calendar で Meiji さんが言及 http://blog.kimuradb.com/?eid=877556 してますが、LibreOffice 6.2 から Base の埋め込みデータベースとして Firebird が選択できるようになりました。
(そして、LibreOffice 6.3 からデフォルトで Firebird が選ばれているようになりました)
Firebird 3.0 の embeded サーバーが使われているようです

Base の odb ファイルは zip ファイル形式になっていて、埋め込みデーターベースに Firebird を選択した場合、その zip ファイルを解凍すると Firebird のバックアップファイルが取得できます。
basetable.png左のように LibreOffice からテーブルデータビューでデータを登録した odb ファイルから以下のような操作をしてみました
- odb ファイルをunzip
- gbak でリストア
- isql で接続して select

nakagami@ubuntu1804:~$ cd basefiles/
nakagami@ubuntu1804:~/basefiles$ unzip samplebase.odb
Archive:  samplebase.odb
 extracting: mimetype
   creating: reports/
  inflating: content.xml
  inflating: database/firebird.fbk
   creating: forms/
   creating: Configurations2/
  inflating: settings.xml
  inflating: META-INF/manifest.xml
nakagami@ubuntu1804:~/basefiles$ gbak -c -v -user SYSDBA -password masterkey database/firebird.fbk /tmp/firebird.fdb
gbak:opened file database/firebird.fbk
gbak:transportable backup -- data in XDR format
gbak:           backup file is compressed
gbak:backup version is 10
gbak:created database /tmp/firebird.fdb, page_size 8192 bytes
gbak:started transaction
gbak:restoring domain RDB$1
gbak:restoring domain RDB$2
gbak:committing metadata
gbak:restoring table table1
gbak:    restoring column id
gbak:    restoring column s
gbak:restoring generator RDB$1 value: 3
gbak:committing metadata
gbak:    restoring index RDB$PRIMARY1
gbak:restoring data for table table1
gbak:   3 records restored
gbak:    restoring privilege for user SYSDBA
gbak:    restoring privilege for user SYSDBA
gbak:    restoring privilege for user SYSDBA
gbak:    restoring privilege for user SYSDBA
gbak:    restoring privilege for user SYSDBA
gbak:    restoring privilege for user SYSDBA
gbak:    restoring privilege for user SYSDBA
gbak:    restoring privilege for user SYSDBA
gbak:creating indexes
gbak:committing metadata
gbak:    activating and creating deferred index RDB$PRIMARY1
gbak:adjusting views dbkey length
gbak:updating ownership of packages, procedures and tables
gbak:adding missing privileges
gbak:adjusting system generators
gbak:finishing, closing, and going home
gbak:adjusting the ONLINE and FORCED WRITES flags
nakagami@ubuntu1804:~/basefiles$ isql -user sysdba -password masterkey /tmp/firebird.fdb
Database: /tmp/firebird.fdb, User: SYSDBA
SQL> show tables;
table1

SQL> show table table1;
There is no table TABLE1 in this database
SQL> show table "table1";
id                              INTEGER Not Null Identity (by default)
s                               VARCHAR(100) Nullable
CONSTRAINT INTEG_1:
  Primary key (id)
SQL> select * from "table1";

          id s
============ ===============================================================================
           1 あいうえお
           2 かきくけこ
           3 さしすせそ

SQL>

日本語の文字列も問題なく select できました。
ただ LibreOffice で table1 と、小文字のテーブルを作成してしまったので、ダブルクォートでクォートする必要がありました。
コメント(0) 
共通テーマ:日記・雑感