mysql

SHOW CREATE TABLEの実行

調べてみました。SQLコマンドの処理ではおなじみのmysql_execute_command関数ですが、SHOW CREATE TABLEについてはSQLCOM_SHOW_CREATEというコマンドが用意されています。(SHOW系のコマンドはinformation_schemaデータベースへのSELECT文に変換されるケース…

pluggable storage engine関係のautoconfマクロ

config/ac-macros/plugins.m4参照。pluggable storage engineのplug.inを書く上で関係しそうなものをピックアップ。 MYSQL_STORAGE_ENGINE 利用方法 dnl Macro: MYSQL_STORAGE_ENGINE dnl dnl SYNOPSIS dnl MYSQL_STORAGE_ENGINE([name],[legacy-option],[St…

Pluggable Storage Engineの作り方

について調べています。とりあえずBrianがいくつか書いていたのを思い出したのでリンクを載せます。 http://tangent.org/543/Skeleton_Engine_for_MySQL.html http://tangent.org/576/Skeleton_Engine_for_MySQL_0%2E7_%28default%29.html http://hg.tangent…

5.1.22-rcのconfigure

./configure \ '--prefix=/usr/local/mysql' \ '--localstatedir=/usr/local/mysql/data' \ '--libexecdir=/usr/local/mysql/bin' \ '--with-comment=MySQL Community Server (GPL)' \ '--with-server-suffix=' \ '--enable-thread-safe-client' \ '--enable…

skeleton engineのビルド方法

MySQL本体が必要、ということでmysql-5.1.22-rc.tar.gz等を入手。configure/make/make installしておく。skeleton engineも入手してビルド。ver0.7が最新? http://download.tangent.org/skeleton_engine-0.7.tar.gz configureでMySQLのソースとライブラリを…

mir ストレージエンジンができたよー(^^/

恒例の名前だけ変えた奴ができました。 [test]> install plugin mir soname 'libmir_engine.so'; Query OK, 0 rows affected (0.10 sec) [test]> create table t1 (c1 int) engine = mir; Query OK, 0 rows affected (0.01 sec) [test]> show create table t…

innodb_data_file_pathについてのメモ

昨日一度エントリを書きだしつつ途中で面倒くさくなって破棄したのですが、やっぱり簡単にメモだけ残しておきます。残さないと半年後くらいにサッパリ忘れそうでw 制限事項まとめ 先に制限事項をまとめておきますその1 innodb_data_file_pathに列挙できるデ…

sql_function大幅減少

mysql-5.0と比べるとmysql-5.1ではsql/lex.hのsql_functionsが大幅に減っている。なぜでしょう?

システム変数実装方法@set_var.ccの違い

mysql-5.0とmysql-5.1で異なっているようなので貼りつけておきます。 mysql-5.0での方法 - Use one of the 'sys_var... classes from set_var.h or write a specific one for the variable type. - Define it in the 'variable definition list' in this fil…

5.0.50のリリースと--with-tcp-port

MySQL Enterprise Server 5.0.50がリリースされました。リリース内容の詳細はどこかに出ると思うので1点だけ。これまでconfigureオプションの--with-tcp-portを指定してもLinuxの場合はmysqld起動時の/etc/servicesにより上書きされるという実装だったのです…

sql_locale.cppがVisual Studioでビルドできない件(続報)

以前にも書いていた、sql_locale.cppがビルドできない件だけれども、これはとりあえずUnicode文字をすべてASCII変換してあげれば、ソースコードの文字コードを変更(UTF-8 → UTF16LE)しなくてもビルドできることが分かった。Javaとかをインストールしていれば…

UC Japan 2007の記事

@ITさんが記事をアップされてます。MySQLと掛けてIKEAと解く、その心は? 〜 MySQL Users Conference Japan 2007レポート 〜 http://www.atmarkit.co.jp/flinux/special/mysqlconf/mysqlconf_a.html http://www.atmarkit.co.jp/flinux/special/mysqlconf/mys…

ビルド時間@Core2Quad 6600

"-j"無しの状態でこんくらい。 real 7m13.728s user 4m21.224s sys 1m22.018sHP DL380 G5には及ばないけど、ThinkPadX31に比べるとコア単体の性能で4倍くらい速い。ちなみにこれは、Xen上で準仮想化で動かしてるCentOS 4.5 x86_64での結果です。

Users Conference Japan 2007終了

うちのセッション、ブースにお越しくださった方々、ありがとうございました。2日間にわたるMySQL UC Japan 2007も無事終了し、今日は少しのんびりしてます。今回は自社ブースを守らなければいけなかったため、Cybozuさん(MySQL+Senna!!)のセッション以外はほ…

Users Conference Japan 2007

9/11-12の明日明後日は、MySQL Users Conference Japan 2007でーす。 http://www.mysql-ucj2007.jp/ たぶん2日間ずっと会場にいます。見かけたら声かけてくださーい。

SQLパーサ関係を変更した際にdiffるべきファイル一覧

新しいSQLコマンドやSQL関数などをパーサに追加する際、編集するべきファイルは以下。 sql/lex.h sql/sql_yacc.yy でもって、GNU Bisonによりここから自動生成されるファイルは以下。 sql/sql_yacc.h sql/sql_yacc.cc でもこれだけだとdiff漏れになるので注…

--with-tcp-port vs /etc/services

以前こんなエントリを書きました。 [MySQL][BUILD] --with-tcp-portが効かない 簡単にまとめるとこんな感じ。 configure時に--with-tcp-portでデフォルトのポート番号を指定可能。 ただしLinux/Unix等の/etc/servicesファイルを使用しているOSでは、そのserv…

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は突っ込めないように見えるけどどうなんだろ。

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

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

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

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

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…

make dist時の注意点

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

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

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

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…

Understanding MySQL Internalsを読む(10)

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

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

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

Understanding MySQL Internalsを読む(9)

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