SSブログ

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) 
共通テーマ:日記・雑感

2019年の pyfirebirdsql [Firebird]

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

pure python で、私が書き起こしてメンテナンスしている Firebird のデーターベースドライバー pyfirebirdsql https://github.com/nakagami/pyfirebirdsql の2019年のリリースは振り返ってみると、結局一回だけでした。

内容も、
- ソースコードのちょっとした整理
- Firebird 4.0 beta1 で実装された decfloat の新しい内部形式に対応
程度で、 stable な Firebird3.0 や Firebird 2.5 には影響のないものでした。

FDB https://nakagami.blog.ss-blog.jp/2019-12-02 のように、スキーマやモニター情報を取得する機能をドライバーに含めるつもりはないので、機能的な追加は、もうしないと思います。

Firebird 4.0 の準備をしながら数年というような状況になってきました。
2020年こそ Firebird 4.0 がリリースされることを期待します。

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

Firebird を使うメリットって何だろう [Firebird]

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

MySQL や PostgreSQL じゃなくて Firebird を使うメリットって何だろう?
たまに質問されて、自分でも悩んでしまうが、これを機会に挙げてみると・・・

【メリット】

- インストールが簡単。 https://nakagami.blog.so-net.ne.jp/2018-12-02
- コンフィグレーションが簡単。 firebird.conf の修正だけ
- Windows のサポートがちゃんとしている
- (特に最近)SQL 標準の機能がサポートされてきている
- LibreOffice 6.2 の Base で使える http://blog.kimuradb.com/?eid=877556
- 開発が特定の企業に依存していない

【デメリット】

- 使っている人が少ない
- チューニングパラメーターが少ない(チューニングの余地が少ない)
- 可用性を高める機能がない。もしくはとても不足している
- 高負荷を分散するマルチマスターやシャーディングの機能がない
- 開発者とユーザーが少ない

ほとんどの場合困らないと信じているが、困ってしまったときに行き詰ってしまうかもしれないという怖さはある。
SQL文の機能的には問題ないが、僕ですら、積極的に人には勧められない。

僕が、Firebird プロジェクトにコミットしているのは、 せっかく Interbase が公開してくれて OSS として使える RDBMS が放置されて、選択肢が狭くなるのは勿体ない、ということからである。
できれば、僕も(Firebird にして良かったという場面で)仕事で使ってみたい。

HDD のような壊れやすいストレージに依存しなくなって、ストーレージが速くなって、今後、チューニングの必要のない小~中規模の環境で使うメリットが大きくならないかなぁ
・・・という願望はあるし、ワンチャンあるのでは、とは思っている。
コメント(0) 
共通テーマ:日記・雑感

pyfirebirdsql 1.1.2 released [Firebird]

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

Pure python な Firebird Database driver pyfirebirdsql 1.1.2 を(今さっき)リリースしました
https://pypi.org/project/firebirdsql/1.1.2/

主な変更点は 9日目に書いた timezone のサポートです
https://nakagami.blog.so-net.ne.jp/2018-12-11

次にリリースされるであろう Firebird 4.0 beta1 では使えると思います。
コメント(0) 
共通テーマ:日記・雑感