Home

memo-space

GCCでアライメントを指定する

アライメントの指定のしかたを調べる。

#include <stdio.h>
#include <stddef.h>

int
main()
{
	struct t1 {
		char	c;
		int		i;
	};
	struct t2 {
		char	c;
		int		 __attribute__((packed)) i;
	};
	struct t3 {
		char	c;
		int		i;
	} __attribute__((aligned(2), packed));

	printf("size = %d\n", sizeof(struct t1));
	printf("offset = %d %d\n", offsetof(struct t1, i), offsetof(struct t1, j));
	printf("size = %d\n", sizeof(struct t2));
	printf("offset = %d %d\n", offsetof(struct t2, i), offsetof(struct t2, j));
	printf("size = %d\n", sizeof(struct t3));
	printf("offset = %d %d\n", offsetof(struct t2, i), offsetof(struct t3, j));
	return 0;
}

こんな感じでいいのかな。offsetofの使い方も覚えておこう。

PGClusterと格闘中

PGClusterが上手く動かない。mallocに失敗してる。ちょっとデバッグ文を入れてみたら、

ERROR:PGRread_query():malloc failed: (Cannot allocate memory) query_size=1886352244 

query_sizeデカスギ。つーか64bitのマシンなのでアライメントの問題が発生しているようだ。

ああ、というか32bitと64bitがごちゃまぜになってるからダメなんだな。

Musical Baton

h2so4氏より。

1.Total volume of music files on my computer
たぶん1Gくらい。

2.Song playing right now
我が家にはスピーカーっつーものが無いので(ノートパソコンのスピーカーだけか)部屋で音楽を聞くことはほとんどありません。今車の中に入っているCDはマイケル・ジャクソンのHistory。

3.The last CD I bought
奇跡のカンパネラ / フジ子・ヘミング
とにかくラ・カンパネラという曲が聞きたくて買った。昔はリストって興味無かったけど、この曲はすごく好き。

4.Five songs(tunes) I listen to a lot, or that mean a lot to me
o シング・シング・シング / ベニー・グッドマン
最近、「スウィングガールズ」で有名になったのかもしれない。高校生の時に肺に穴を空けて入院した。テレビが無かったのでNHK-FMばかり聞いていた頃に出会った曲。僕が初めて自分で買ったCDでもある。

o Born to Be Blue / Wes Montgomery
ライブアルバム「Full House」より。 何月にレコーディングしたものか知らないけど、 照明に照らされ、額に汗しながらギターを弾く姿が目に浮んできます。

o The Wind Forest / 久石 譲
「となりのトトロ」の曲。庭に蒔いた種が(夢の中で)ギュィーンと伸びて、トトロにつかまって空を飛ぶ時シーンで流れるのが印象的。普段はPiano Storiesというアルバムのを聞いてます。

o ベートーベン ピアノ・ソナタ第23番ヘ短調op.57「熱情」
悲愴やテンペストも好きだけど一曲といわれればコレ。激アツの第三楽章もイイけど、グっと抑えぎみの第二楽章も好き。普段聞いているのはホロヴィッツ。

o チャイコフスキー 交響曲第5番
N氏、H2SO4氏といっしょです。そんなにクラシックに詳しいわけじゃないけど、これはキャッチーだし飽きない。第2楽章なんかは、なんか最近の音楽聞いてる気がする。クラシックに縁の無い人もドラマかゲームのサントラ聞くくらいのつもりで聞いてみてはいかがか。

好きな曲じゃなくて、アルバムを聞かれたら全然違ってたかもしれない。KUWATA BANDのRock Concertとか。あとBridgeとかかな。

5.Five people to whom I'm passing the baton
そろそろヤメ時みたいなのでやめときます。(もうたいてい廻ってるっぽいし)。

ACLをいろいろ

ACLについてちょっと気になったことがあったので調べる。なんか"GRANT TEMP ON DATABASE"って機能してなくないか?

* "CREATE TEMP TABLE foo"すると、 DefineRelation() -> RangeVarGetCreationNamespace() でmyTempNamespaceが返される。 んだけど、まだ初期化されてないと InitTempTableNamespace() が呼ばれる。

この中で、 pg_database_aclcheck()で、ACL_CREATE_TEMPのチェックをしてる。

とここまで追ってみて、そもそもREVOKE TEMP出来てなさそうなことに気が付く。

ひまがあったらまた追おう。

Home

Search
Feeds
Profile
石田@苫小牧市と名乗りつつ札幌の某社に勤務するプログラマ
書いた本
Links

Page Top