開発

Tritonn: configure --enable-abortをやめて自動判別にすべきか

すごく細かい話なんですが。というかここ最近ずっとBlogを書いていなかったけれども、また書きたくなってきた。しかも細かい話。備忘録的な。Senna 1.1.4では、 "--enable-abort"でビルドされたらsen_index_set_abort_callbackがlibsennaに存在する そうでな…

tritonn-1.0.12 残タスク

tritonn-1.0.11のquick fix版として1.0.11aを出したかったのですが、日が経ってしまったので、いくつか追加で修正等を行って1.0.12としてリリースする予定です。完了したもの sql_yacc.yyのshift/reduce数を調整し、bisonエラー回避 USING句を2重に使用した…

バージョン文字列からバージョンID番号を作る方法

MySQLのconfigure.inが参考になる。 # Set all version vars based on $VERSION. How do we do this more elegant ? # Remember that regexps needs to quote [ and ] since this is run through m4 # We take some made up examples # # VERSION 5.1.40sp1-…

NGRAMのデフォルト化

ここ1週間ほど多忙だったためbugfixくらいしかできていなかったのですが、今日ようやくNGRAMのデフォルト化の実装をすることができました。次のリリースであるtritonn-1.0.7からは、USING句に何も指定しなかった場合、NGRAMが使用されるようになります。これ…

いろいろcommit

昨日からいくつかcommitしました。全てtritonn-1.0.7に含める予定です。 r25 null値をkwic関数に渡すと落ちる問題の修正 リテラルとか入れ子の関数、subselectとかだと発生しないのですが、カラムデータがnullの状態でkwic関数の第一引数にそのカラムを渡す…

kwic関数バグ修正

バグです。ごめんなさいごめんなさい。 SELECT kwic(文書, 切り出す文書の最大バイト数, 切り出す文書の最大個数, htmlエンコーディングの有無, snippetの開始タグ, snippetの終了タグ, 単語1, 単語1の前につけられるタグ, 単語1の後につけられるタグ, 単語2…

snippet関数の名前を"kwic"に変更します

今日ちょっとSenna開発陣の方々と相談したのですが、snippet関数の名前をkwicに変更することにしました。理由は以下の通りです。 snippet UDFと微妙に関数signatureが違う(Native関数版は引数に文字コード指定が無い、内部で判定するので) KWIC(Keyword in…

インデックス作成時に指定可能なフラグにSPLIT系を追加

SPLIT_ALPHA、SPLIT_DIGIT、SPLIT_SYMBOLという3つのSennaインデックス作成用フラグをUSING句で使えるようにしました。これらのフラグはSenna本体では以前からサポートしていたのですが、これまではMySQLのDDL経由で指定することができませんでした。今回の…

"SHOW SENNA STATUS"コマンドを改良

Senna用SQLコマンドである"SHOW SENNA STATUS"の不具合の修正と表示内容の追加を行いました。svn.sourceforge.jpにcommit済みです。revision15。 修正点: db非選択時のエラーコードをより適切なものに変更 以前の"show senna status"は以下のようにdb名を指…

snippet関数を実装しました

お知らせ snippet関数は"kwic"という名前に変更いたしました。詳しくはこちら→http://d.hatena.ne.jp/mir/20070907/p1 はじめに snippet関数という新しいSQL関数を実装しました! 現在、Tritonnの開発レポジトリにcommitされています。以下のコマンドでソース…

snippet UDFをNativeなSQL関数として移植するかも

半年ちょい放置してましたが着手開始〜。まずは試験的に実装してみていろいろテストしてから採用の可否を検討します。snippet UDFについてはこちらを参照。 http://qwik.jp/senna/old_mysql_binding_docs.html 可変引数を持たないSQL関数と可変引数を持つSQL…

Sennaのマルチセクション機能に対応

Sennaのマルチセクション機能に対応しました!次回のTritonnリリース(ver1.0.3)から利用可能になる予定です! Tritonn 1.0.3は来月あたりにリリースする予定です。 マルチセクション機能とは? マルチセクション機能とはテーブルに全文検索対象のカラムが複…

ブランチごとのパッチ管理の方法とか

ver5.0向けにパッチを作っていって、それが蓄積されて結構な量になった後、ver4.1とかver4.0とかにバックポートしようとすると、大変なのを思い知った。patchコマンドがうまく捌いてくれるファイルもあるけれども、うまくさばけないファイルもある。単にFAIL…

[Emacs] ChangeLogを手軽に書く方法

某"ぐ"さんから教えていただいたページ。横着プログラミング http://0xcc.net/unimag/1/Emacsで"C-x 4 a"とやると、、、なんとChangeLogが簡単に書ける! 上記サイトの記事自体もかなりよさげ。 ところで、今朝からiPodの"▼="ボタン長押し電源OFFが効かない(…

ChangeLogの使い方

どーしたらいいでせうかね〜。 hogeバグを直した fuga機能を追加した とかのレベルで書いた方がユーザフレンドリーなChangeLogになると思うけど、 fooファイル: bar構造体にxxx変数を追加 gaaファイル: daaマクロを定義 myaaファイル: kuso関数のmiso判定にp…

$HOMEディレクトリのサイズ

つい10日ばかり前に開発環境の再構築(同じNotePCでLinuxディストリ入れ換え)したばかり(http://d.hatena.ne.jp/mir/20061218/p1)なのに、duしたらもう10GBくらいになっていた。まさに1日1GBの勢いで成長中。開発環境の引越しをわりと頻繁にやるので、実…

diffの使い方

良くやるのは、-N、-u、-r、-dを付けて diff -Nurd ソースディレクトリ1 ソースディレクトリ2によるディレクトリ内の全ファイルチェックおよび差分表示とかだったりします。ここで、オリジナルである上記のソースディレクトリ1の方はmakeとかしないので特に…

さすがに

12時間前にやっていたことは覚えてるなぁ。順調順調wしかしあれだ、table_cacheの利用方法についても調べないと・・・。query_cacheは無関係のはず、、、だけどこれもいちおう調べておかないと・・・。 タイトルとは関係ないけど、rsyncでsambaサーバにバ…

ブランク

木曜日にコードを書いて、金土日月と四日間空いただけなのに、もう頭から抜けて始めてる。うーん、いやだわ〜。やはり毎日書かないとなのかなぁ。

こまめにdiffを取るとか、あるいはローカルのsvnにいれておくとか

下のエントリでタッチパッドの無効化について書いていると思いますが、実はこの「冬の静電気+タッチパッドによるqあwせdrftgyふじこlp;@:」によって、どうも開発中のソースが壊れてしまったようなのです。ビルドして起動するとすると謎のstack over flowが…

ccacheによるビルドの高速化

うちがmysqlのhackをする場合、ビルドに関して多いのは、 hack用途に合った./configure呼び出しシェルスクリプトを作成して、それ経由で./configureを呼び出し 最初にクリーンな状態でmake make install mysql_install_dbとか流してmysqldを起動できるように…

昨夜の教訓

ヘッダファイルとかにあるデータ構造をいじったら(構造体のメンバ追加・削除等)一度、"make clean"を必ず実行する。それをやらないで単にmakeだけすると、オブジェクトファイル間で構造体に違いが生じてSIGSEGV落ちするようになる場合がある。しかもcoreフ…

今日の教訓

commitは細かく行ったほうが良いそうです。1回の追加・修正量が多いとそれだけ問題がおきやすく解決しにくいようです。あと、ついいろんな機能をまとめてaddonしたくなりがちですが、プロダクト全体としてのバージョン(MySQL 5.0やMySQL 5.1など)との兼ね…

むふふ

現在、MySQLと某ソフトウェアに絡んだ開発(コーディング!!)を行っています。これに絡んで、mysqlをいろいろhack中です。しかるべき時期が来たらしかるべき場所で公開できると思います。 システム変数の追加 ステータス変数の追加 SQLコマンドの追加 などなど…