Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome or Safari browser. Firefox 10 (to be released soon) will also handle it.

非同期のはなし(?)

@tsucchi

自己紹介

で、今回のテーマについて

非同期だっけ?

非同期処理について

以上!

Reply の話(2)

@tsucchi

Reply について

tsucchi@surreal[620]$ reply
reply@surreal.local[0]> 
reply@surreal.local[1]> 1 + 1
$res[0] = '2'

reply@surreal.local[2]> $a = 123
$res[1] = '123'

reply@surreal.local[3]> $b = 456
$res[2] = '456'

reply@surreal.local[4]> $a + $b
$res[3] = '579'

reply@surreal.local[5]> rand()
$res[4] = '0.0647113826862586'

reply@surreal.local[6]> exit

Reply is 便利

% reply-service1
1> Select('detective', { id => 1 });
$res[1] = {
    id => 1,
    name => 'シャーロック・シェリンフォード',
    age => 15,
    toys => 'サイコキネシス',
    birthday => '3/31',
}

色々便利な物体があるので、試してみてください

本題

よし、作ろう

地獄の話

@tsucchi

まずは DBMS 毎にどのようにテーブル定義を取得するか見てみましょう

MySQL

my ($create_table_ddl) = $self->search_by_sql("SHOW CREATE TABLE $table_name");

SQLite

my $inspector = DBIx::Inspector->new(dbh => $self->dbh);
my $table = $inspector->table($table_name);
my $create_tabl_ddl =  $table->{SQLITE_SQL};

PostgreSQL

え?まじ?

そんなものは無かった orz

そしてトドメ

sql = wxT("-- Database: ") + GetQuotedFullIdentifier() + wxT("\n\n")
      + wxT("-- DROP DATABASE ") + GetQuotedIdentifier() + wxT(";")
      + wxT("\n\nCREATE DATABASE ") + GetQuotedIdentifier()
      + wxT("\n  WITH OWNER = ") + qtIdent(GetOwner())
      + wxT("\n       ENCODING = ") + qtDbString(GetEncoding());

無ければつくるしかない

無ければつくるしかない

工夫したこと

まとめ

まとめ

おしまい

Use a spacebar or arrow keys to navigate