タグ

SQLiteに関するpukumanのブックマーク (8)

  • Rust で SQLite を再実装した 2023 - kawasin73のブログ

    気合いで実装、どうもかわしんです。 この記事は Rust Advent Calendar 2023 の6日目 兼 情報検索・検索技術 Advent Calendar 2023 の 6 日目です。 RustSQLite をフルスクラッチで実装しています。 github.com なぜ SQLiteRust で再実装しようと思ったのかについては以前の記事で紹介しています。一言で言えば、誰も RustSQLite を書いている人がいなかったからやってみたのですが、そもそも SQLite が強すぎるということが再実装しているうちにわかってきて絶望しています。 kawasin73.hatenablog.com 4 ヶ月前にこの記事を書いたときは簡単な SELECT 文しか実行できなかったのですが、現時点では SELECT, INSERT, DELETE 文をサポートし、express

    Rust で SQLite を再実装した 2023 - kawasin73のブログ
  • SQLite のおもしろ仕様 (2) : ファイルフォーマット - kawasin73のブログ

    後方互換性って辛いね、どうもかわしんです。 最近 RustSQLite をフルスクラッチで再実装しています。 github.com 再実装するために SQLite の公式ドキュメントやソースコードを読み込んでいるわけですが、その過程で気付いたおもしろポイントを共有しようかと思います。 今回はその第二弾、ファイルフォーマット編です。第一弾はこちら:SQLiteおもしろ仕様 (1) : データ型 - kawasin73のブログ 前提知識 : ページ まず、この記事を面白いと思ってもらうための前提知識です。 大抵のデータベースはデータを保存するファイルをページという単位で管理します。SQLite ではデフォルトでは 1 ページ 4096 バイトです。これは、ファイルを保存するデバイス(HDD や SSD など)としてブロックデバイスを想定しているからです。ブロックデバイスとはデータの読

    SQLite のおもしろ仕様 (2) : ファイルフォーマット - kawasin73のブログ
  • SQLite のおもしろ仕様 (1) : データ型 - kawasin73のブログ

    型は型、どうもかわしんです。SQLite では型は絶対ではなく、あくまでも尊重です。信用しすぎると裏切られます。 最近 RustSQLite をフルスクラッチで再実装しています。 github.com なるべく家の SQLite と compatible にするために SQLite のドキュメントやコードを読んで挙動を理解しながら作っています。これを作ることになった経緯はこの記事で紹介していますが、その過程でいろいろ知らなかった面白い仕様や実装があったので紹介していきたいと思います。今回はその第一弾です。 kawasin73.hatenablog.com データ型と Type Affinity SQLite のドキュメントの中で、今の所一番面白いのがこれです。 www.sqlite.org まず、SQLite の内部的には 5 つのデータ型しかありません。 NULL INTEGER

    SQLite のおもしろ仕様 (1) : データ型 - kawasin73のブログ
  • SQLite、複数クライアントからの同時書き込みを可能にする「BEGIN CONCURRENT」文を実装へ

    SQLite、複数クライアントからの同時書き込みを可能にする「BEGIN CONCURRENT」文を実装へ SQLiteの開発チームは、複数クライアントからの同時書き込みを可能にするBEGIN CONCURRENT文を実装していることを明らかにしました。 これまでSQLiteでは書き込みの同時実行はできず、つねに1つのクライアントだけが書き込み可能でした。 同時書き込み処理は、データベースのジャーナルモードが「wal」(Write-Ahead-log)もしくはwalを改良した「wal2」で、BEGIN CONCURRENT文を実行した場合に可能となります。 どのように同時書き込み処理が行われるのかについては、上記のWebページの説明を引用しましょう。 ロックが延期されることで同時書き込みが可能に まず、書き込み時のロックがCOMMITまで延期されることで同時書き込みが実現されると説明されて

    SQLite、複数クライアントからの同時書き込みを可能にする「BEGIN CONCURRENT」文を実装へ
  • 「SQLite3 WASM/JS」パブリックベータ公開。SQLite 3.40でサポート開始、WebブラウザなどでSQLiteが実行可能に

    SQLite3 WASM/JS」パブリックベータ公開。SQLite 3.40でサポート開始、WebブラウザなどでSQLiteが実行可能に SQLiteの最新版となるバージョン3.40がリリースされました。バージョンからSQLiteのソースコードがWebAssembly版の「SQLite3 WASM/JS」へのコンパイルをサポートし、配布される公式のバイナリにLinux版、Windows版、Mac OS X版、Android版などと共に「SQLite3 WASM/JS」が含まれるようになりました。 SQLiteはオープンソースの代表的なリレーショナルデータベースの1つ。軽量かつコンパクトな実装で、クライアント/サーバ形式ではなくアプリケーションに組み込んで利用できる点が最大の特徴です。 先月(2022年10月)に予告なくSQLite3 WASM/JSのページが公式Webサイトで公開され、

    「SQLite3 WASM/JS」パブリックベータ公開。SQLite 3.40でサポート開始、WebブラウザなどでSQLiteが実行可能に
  • リチャード・ヒップとのSQLiteの秘話

    CoRecursiveより。 今日の番組では、リチャード・ヒップと、サバイバルが世界の中核インフラになることについてに話します。SQLiteは至る所にあります。ウェブブラウザにも、携帯電話にも、おそらく車の中にも、そして旅客機の中にも間違いなく存在します。iMessagesやWhatsAppのメッセージが保存されているのもSQLiteです。コンピュータで*.dbを検索すると、驚くほど多くのSQLiteデータベースが見つかります。 今日は、リチャードが彼の物語を紹介します。小さなオープンソースのプロジェクトを立ち上げ、それが自分の野心を超えて成長したという話です。そして、テック巨人との関係から、興味深いテスト方法まで、その成功をどこまでも追いかけていく物語です。 注: このポッドキャストは、聞くことを前提としています。可能であれば、ページに記載されていない部分を含めて、音声を聞くことを強くお

  • iPhoneがJavaScript+SQLiteでGPSレコーダーに! (1/5)

    JavaScriptを使ってGPSデータを取得できるようになったiPhone OS 3.0。前回は、現在の位置情報を取得し、Googleマップに表示する方法を紹介しました。後編は、位置情報と日時をデータベースにどんどん記録していくプログラムを作ってみましょう。 Safariのデータベースを使う iPhoneに搭載されているSafariは、HTML5で追加される予定のAPI「Client-side database storage」を先行実装しており、ブラウザーが用意しているローカルデータベースにJavaScriptを使ってデータを保存できます。 iPhoneのSafariはデータベースエンジンとして「SQLite」を実装しています。SQLiteは、SQLのすべての命令には対応していませんが、簡単なWebアプリケーション用途であれば十分な機能を持つデータベースエンジンです。個々のテーブルは「

    iPhoneがJavaScript+SQLiteでGPSレコーダーに! (1/5)
  • ぷっぷのあとりえ-Software

    ここでは私が作成したソフトウェアを公開しています。 下記のソフトウェアを動かすには.Net FrameWork2.0 (22.4 MB)が必要です。ダウンロードとインストールをお願いします。 PupSQLite ver 1.0.1.1ヘルプファイルを開く SQLite3用の多機能編集ツール。DBの新規作成,CSV,Excel,MDB,XMLの読み込み、SQLの実行などが可能です。 PupStepCounterVB ver 0.1.0.0 Visual Basicの.vbファイルに特化したステップカウンターです。 PupExitTimer ver 1.0.0.0 指定した時間にPCをログオフ,シャットダウン,強制シャットダウンしたりアラームを表示します。 GUI4ILMerge ver 1.0.1.2 .NET用のDLLをEXEと結合するソフト ILMerge に使いやすいGUIを提供しま

    pukuman
    pukuman 2008/12/18
    PupSQLite:Window用SQLite3管理ツール
  • 1