後方互換性って辛いね、どうもかわしんです。 最近 Rust で SQLite をフルスクラッチで再実装しています。 github.com 再実装するために SQLite の公式ドキュメントやソースコードを読み込んでいるわけですが、その過程で気付いたおもしろポイントを共有しようかと思います。 今回はその第二弾、ファイルフォーマット編です。第一弾はこちら:SQLite のおもしろ仕様 (1) : データ型 - kawasin73のブログ 前提知識 : ページ まず、この記事を面白いと思ってもらうための前提知識です。 大抵のデータベースはデータを保存するファイルをページという単位で管理します。SQLite ではデフォルトでは 1 ページ 4096 バイトです。これは、ファイルを保存するデバイス(HDD や SSD など)としてブロックデバイスを想定しているからです。ブロックデバイスとはデータの読
型は型、どうもかわしんです。SQLite では型は絶対ではなく、あくまでも尊重です。信用しすぎると裏切られます。 最近 Rust で SQLite をフルスクラッチで再実装しています。 github.com なるべく本家の SQLite と compatible にするために SQLite のドキュメントやコードを読んで挙動を理解しながら作っています。これを作ることになった経緯はこの記事で紹介していますが、その過程でいろいろ知らなかった面白い仕様や実装があったので紹介していきたいと思います。今回はその第一弾です。 kawasin73.hatenablog.com データ型と Type Affinity SQLite のドキュメントの中で、今の所一番面白いのがこれです。 www.sqlite.org まず、SQLite の内部的には 5 つのデータ型しかありません。 NULL INTEGER
A high-severity vulnerability has been disclosed in the SQLite database library, which was introduced as part of a code change dating all the way back to October 2000 and could enable attackers to crash or control programs. Tracked as CVE-2022-35737 (CVSS score: 7.5), the 22-year-old issue affects SQLite versions 1.0.12 through 3.39.1, and has been addressed in version 3.39.2 released on July 21,
SQLiteでは、ISO SQL標準同様に、文字列リテラルはシングルクォートで囲み、識別子をクォートする場合は、ダブルクォートで囲むことになっています。 'foo' : 文字列リテラル "foo" : 識別子(テーブル名、列名等) しかし、マニュアルによると、SQLiteのクォーティングには例外があります。それを実例で紹介しましょぅ。まずは、実験の準備として、列 a だけを持つテーブル a を作成します。 $ sqlite3 test.db sqlite> CREATE TABLE a(a integer); sqlite> INSERT INTO a VALUES(1); sqlite> SELECT * FROM a; 1 sqlite> 続いて、以下を実行します。実行結果はどうなるでしょうか? sqlite> SELECT 'a', "a", [a], `a`, "aa" FROM
始めてFNG09参加させていただきました。いろいろと勉強になった。 このネタははてなに書くように! と主催者の方から言われたので記しておきます。 で、勉強会の中でFirefoxのプラグインのSQLite Managerからデータを消すと、ゼロで上書きされるよねー。SECURE DELETE有効なのかナーという話があったのですが、sqliteのバージョンによって差があるようで、最近のものは基本はSECURE DELETEが有効になっているようです。 http://www.sqlite.org/changes.html#version_3_6_21 The SQLITE_SECURE_DELETE compile-time option fixed to make sure that content is deleted even when the truncate optimization
SQLite3 のデータベースヘッダの内容を確認するのに、最初はバイナリエディタでオフセット位置をそれぞれ確認していたのですが、tessさんから「それ SQLite Manager プラグインで!」というご指摘により、Firefox に SQLite Manager を追加して使っていたのですがとても便利ですね。 SQLite Manager https://addons.mozilla.org/ja/firefox/addon/5817 アドインのインストール後、SQLite Managerからデータベースに接続して、DB Settings を確認することで、Page Size や Auto Vacuum、Encoding の設定値などを確認することが簡単にできます。簡単saiko−! SQLite3 関係のツールを選ぶ場合には、データベース設定を表示してくれるツールを選択するとよいかも
SQLCipherはSQLite用のオープンソース・ソフトウェア。SQLiteはPHPや各種言語でデフォルトサポートされているデータベースエンジンだ。ファイルベースで使える手軽さで、データベースを使うまでもないものの、CSVでデータ管理するのは面倒というケースによく使われる。 使っているところ 手軽に使えるもののSQLはきちんとサポートしており、とても便利なソフトウェアだ。だがデフォルトでは暗号化されないため、セキュリティ的に不安があるという人もいるだろう。そこで使ってみたいのがSQLCipherだ。 SQLCipherはSQLiteの拡張で、AES-256による暗号化に対応する。PRAGMAコマンドによってキーを設定し、その後SQLを実行することでデータを暗号化された状態で扱えるようになる。逆に復号化する場合も同様にPRAGMAを最初に実行する必要がある。 C言語からも扱えるようになって
SpatiaLiteはWindows/Linux/Mac OSX向けのオープンソース・ソフトウェア。MySQLやPostgreSQLのようなデータベースを用意するまでもないが、データの管理にデータベースがあると便利だと感じるようなシステムにおいてSQLiteはとても便利な存在だ。 SQLiteの管理にどうぞ ファイル一つで利用できるし、それでいてSQLが使えるので後々本格的なデータベースに移行するのも容易になる。そんなSQLiteをCUIまたはGUIで管理できるソフトウェアがSpatiaLiteだ。開発者の手元にあると便利なソフトウェアになりそうだ。 新しいデータベースを作るのはもちろん、既存のファイルを開くこともできる。テーブルの一覧、データの追加/編集も簡単だ。テーブルの追加やカラムの追加や削除、トリガーやビューの作成と言った操作はSQLのテンプレートが表示されるようになっており、それ
SQLJet is an independent pure Java implementation of a popular SQLite database management system. SQLJet開発チームは15日(米国時間)、SQLJetの最新版となるSQLJet 1.0.0を公開した。SQLJetはJavaで実装されたSQLiteデータベース操作用ライブラリ。SQLite 3.6のデータベースフォーマットに対応。GPLのもとでオープンソースソフトウェアとして提供されている。 SQLJetを使うにあたってSQLiteやほかのネイティブライブラリは不要。Javaで開発されたSQLJetのみで動作する。SQLiteを使って作成されたデータベースファイルの読み込みと操作、または自らSQLiteデータベースファイルを作成する機能を提供している。今のところAPI経由の操作のみ提供し、S
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 ※10秒後にBIGLOBEのおすすめページに遷移します
This extension depended upon the interface to sqlite engine embedded in Firefox. As the interface has been removed in Firefox 57, this extension no longer functions. However, the extension can be used on ESR release of Firefox, which can be downloaded at https://www.mozilla.org/en-US/firefox/organizations/all/. Features: Manage any SQLite database on your computer.An intuitive heirarchical tree sh
SQLiteはDLLファイルだけですぐに利用できる簡易的なDBではあるが、思っているよりもしっかりと動作してくれる。 他のDBのようにインストールも手間もなくすぐに利用できるのが便利だ。最近はPHP5をインストールしているサーバも増えたので、ファイルをアップするだけですぐに利用できるというのも手軽でいい。 そんなSQLiteであるが、管理インタフェースは標準では用意されていない。普及のためには高機能、かつ手軽な管理インタフェースの存在は欠かせないだろう。 今回紹介するオープンソース・ソフトウェアはSQLite Database Browser、SQLiteをGUIで操作できるソフトウェアだ。 SQLite Database Browserを使うと、GUIベースでデータベースの作成はもちろん、テーブルの設計やデータの編集ができる。SQLを実行して結果を見ることも可能だ。もちろん、日本語に対応
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く