2007-08-01から1ヶ月間の記事一覧

WarningとErrorの出力方法

Warningの出力方法 sql/sql_error.hにMYSQL_ERRORクラスとpush_warning関数が定義されてます。 class MYSQL_ERROR: public Sql_alloc { public: enum enum_warning_level { WARN_LEVEL_NOTE, WARN_LEVEL_WARN, WARN_LEVEL_ERROR, WARN_LEVEL_END}; uint code…

UDFの仕様 - エラー処理

http://dev.mysql.com/doc/refman/5.0/en/udf-return-values.html これを見るとUDFではエラーは返せるもののwarningは突っ込めないように見えるけどどうなんだろ。

CentOS 3.9に宗旨替え

訳あって"glibc 2.3 Love"から"glibc 2.3.2 Love"へと進化しました。そこで、glibc 2.3.2を積んでいるよさげなディストリは何かな〜ということでdistrowatchを見たところ、CentOS3系の3.9が先月でたばかりのようでよさげです。x86_64版もあるようです。 http…

Item::val_str(String *str)について

コメントがたっぷり書いてあったので訳してみました。 概要 virtual String *val_str(String *str)=0;このItemオブジェクトの文字列表現を返す。引数strは割り当て済みのバッファ。このItemオブジェクトあるいは入れ子のItemオブジェクトはこのメソッドの戻…

最新安定版に換装してみた

とあるrubyスクリプトを使いたくてyumでCentOSにrubyをいれたら、、以下のメソッドがないと処理系に怒られた。 Net::HTTP::Post#set_form_data昼休みにnekopたんにgmail-chatで相談したところ、オイラの手元のrubyバージョンが古いのが原因だろうという話に…

タイムスタンプを挿入できるようにしてみた

ここを参考に設定。 http://www.bookshelf.jp/soft/meadow_37.html これで、"@<>"と書いて保存すれば括弧内に自動的にタイムスタンプが入る。このままだと再更新時にタイムスタンプ上書きされるので、先頭のtを消す感じで使おうと思う。 ; timestamp (setq t…

OSC2007 Tokyo/Fallに出展します

オープンソースカンファレンス2007 Tokyo/FallにTritonnプロジェクトとして出展することになりましたー!http://www.ospn.jp/osc2007-fall/ブースの出展とミニセミナーの開催を行います。日本MySQLユーザ会と同じ部屋にしてもらう予定です。お立ちよりの際は…

文字列系組込みSQL関数(Native関数)の引数

dddで観察 しっかり撮影できたので残しとこう。 値がnameになるらしい。引数に3とか数字を渡しても"3"になる。3.3なら"3.3"。で、-2を渡したら0になってた。 printfで観察 SQLクエリ上の引数は、Item_funcのインスタンス変数argsに設定された状態で呼出が行…

開発レポジトリをSourceForge.jp上に移行します

パッチ開発方式からソースパッケージ開発方式への移行に着手してから数ヶ月が経過しました。最初は手探りの状態でレポジトリをあれこれ変更しながら管理していたのですが、そろそろ管理方法も固まりつつあり、LAN上の非公開サーバからSourceForge.jpのSubver…

SourceForge.jpのコンパイルファームについて

使ったこと無かったのでちょっと調べてみた。 詳細はこちら:https://sourceforge.jp/projects/sourceforge/document/compilefarm/ja/6/compilefarm.html で、4台マシンがあるらしい。cf.sourceforge.jpにsshで接続するとCUIで選択メニューがでて、以下の4つ…

MyISAMのバージョン間での差分量

MySQL 5.1系のそれぞれのバージョンでstorage/myisamディレクトリのdiffを取ってdiffstatしてみた。 対比バージョン 変更ファイル数 追加行数 削除行数 5.1.20-beta vs 5.1.19-beta 58 853 822 5.1.19-beta vs 5.1.18-beta 4 27 20 5.1.18-beta vs 5.1.17-be…

mysql-5.0.45-tritonn-1.0.4をリリースしました。

Tritonn 1.0.4をリリースしました。MySQL 5.0.45をベースにしています。必要SennaバージョンはSenna 1.0.5以上です。ダウンロードはこちらから: http://sourceforge.jp/projects/tritonn/files/今回のリリースでの変更点は以下です。 マルチセクション機能…

make dist時の注意点

LANGの設定をen_USとかにしておいた方がいいかも。ja_JP.UTF-8とかのままだと自動生成系のファイルに日本語で日時が入ったりしてちょっと嫌な感じ。

Senna 2.0がやってくる!

Senna 2.0についての情報が公開されました! Sennaはこれまで「組み込み」に特化した全文検索エンジンという位置付けだったと思いますが、Senna 2.0では大幅な機能拡張が行われて、ストレージ機能や独自の問い合わせ言語が実装されるなど、単体でも機能する…

Intel Compilerを初めて使ってみた

icc

Intel Compiler 9.0が使われないまま棚に眠っていたので今日からオイラノモノにすることに。インストールはinstall.shとかいうスクリプトで実行。CUI環境でインストールできるやつだった。対話型CUIインストーラを相手にEnterを押したり"accept"って入力した…

可変引数を持つNative関数の実装メモ

可変引数を持つNative関数は実装方法が一般的なNative関数とは異なるためメモしときます。一般的なやつの実装方法はリファレンスマニュアル参照。 概要 編集対象のファイルとその内容についての表。 ファイル 編集内容 sql/item_func.hまたはその派生 新しい…

AutotoolsでHello World!

AutotoolsでHelloWorldをやってみたのでメモしておきます。GNU Autotoolsとはautoconf、automake、libtoolといったC/C++プログラムを容易にかつポータブルにビルド可能にするためのツール群の呼び名とのことです。分かりやすく言うと、自分のプログラムを↓↓↓…

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

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

社会復帰

しました。休み明けだとだるいなぁ〜。とりあえず http://mirz.jp を更新しました(http://mirz.jp/mysql_storageengine_interface.html を追加)。

Understanding MySQL Internalsを読む(12)

連載記事一覧は*こちら*にあります。http://mirz.jpでまとめて読むこともできます(オススメ)。ストレージエンジンインタフェースが終わりといいつつまだあった。handlerton構造体について。 handlerton構造体 ストレージエンジンを独自に実装してMySQLに組み…

Understanding MySQL Internalsを読む(11)

連載記事一覧は*こちら*にあります。http://mirz.jpでまとめて読むこともできます(オススメ)。久々の連載更新。ストレージエンジンインタフェースがこれでやっと終わり。まだあといくつかやっておきたいネタがある。 handlerクラスのメソッド(続き) メソッド…

推奨ビルド&&テスト手順最新版

夏休みに突入したので書いてみる!MySQLをソースからビルドしてみたい人向け、最新版。MySQL 5.0.46をベースにしてます。 まずはダウンロード MySQL Enterpirse Serverのソースダウンロードページはこちら。有償サポートを買った人向け。最近はftp://ftp.mys…

sen_values構造体

Advanced APIを使用する場合、sen_index_updates関数等による更新系処理を行う際に渡すデータとして、生の文字列ではなくsen_values構造体としてが使用される。 typedef struct _sen_values sen_values; struct _sen_values { int n_values; sen_value *valu…

Understanding MySQL Internalsを読む(10)

連載記事一覧は*こちら*にあります。http://mirz.jpでまとめて読むこともできます(オススメ)。ストレージエンジンインタフェースの続き。忙しくなってきたのでビルド待ちの時間にコツコツ書いていたものをUP。 handlerクラスのメソッド(続き) メソッド定義 …

回帰テスト中のデバッグ方法

MySQLを回帰テスト中にgdbデバッグしたいような場合のために、mysql-test-run.plにはオプションが用意されています。まず簡単なやり方は、オプション--gdbを付けること。例えばhogeというテストケースを実行する際にgdbデバッグをかましたい場合。 ./mysql-t…

更新用API

sen_index_upd関数 basic APIに含まれる更新用API sen_index_upd関数。 sen_rc sen_index_upd(sen_index *index, const void *key, const char *oldvalue, unsigned int oldvalue_len, const char *newvalue, unsigned int newvalue_len); index ... 対象の…

30万ページビュー

いつのまにか30万ページビューを越えていました。ご来訪の皆様、ありがとうございます。ほとんど読者を意識しない個人メモ系Blogとはいいつつも、やはり励みになります。確か20万ページビューを越えたのが昨年末だったから(http://d.hatena.ne.jp/mir/200612…

推奨configureオプション最新版

MySQL 5.0系向けです。MySQL 5.0.46をベースにしてます。 CC=gcc CXX=gcc ./configure \ --prefix=/usr/local/mysql \ --localstatedir=/usr/local/mysql/data \ --libexecdir=/usr/local/mysql/bin \ --enable-thread-safe-client \ --enable-local-infile …

Understanding MySQL Internalsを読む(9)

連載記事一覧は*こちら*にあります。http://mirz.jpでまとめて読むこともできます(オススメ)。今回はストレージエンジンインタフェースについて。かなりボリュームがあります。 handlerクラス ストレージエンジンのインタフェースはhandler抽象クラスによっ…

Understanding MySQL Internalsを読む(8)

連載記事一覧は*こちら*にあります。http://mirz.jpでまとめて読むこともできます(オススメ)。 プリプロセッサマクロ MySQLのソースコードはC言語のプリプロセッサマクロを多用しています。以下はMySQLで良く利用されているプリプロセッサマクロです。 マク…