2016-07-01から1ヶ月間の記事一覧

golangのequalityの評価について

はじめに 他の言語のつもりで比較演算子を使うと想定外の挙動をするということもあったりする。最初テキトウにコードを書いて挙動を確認しようとしていたが後に言語仕様を読めば良いだけだということに気づいた。学び始めの最中に思ったことをメモしておくと…

django-returnfieldsというパッケージを作っていました

django-returnfields というパッケージを作っていました。 これは何? はじめはapi responseのfilteringをするライブラリとして作っていましたが、いろいろな変更の結果あるAPIのresponseに対してそのsubsetを返すためのoptimizerのようなものになりました。 …

generic foreignkeyのsub relationをprefetchする方法

はじめに generic foreignkey 自体のprefetchはできる。しかし、その更に先のrelationをprefetchすることができない。これをどうにかしようと言う苦肉の策を考えてみたという話。 言い訳 djangoのgeneric foreignkey関連のコードを読んでみたところ綺麗にで…

もう少しだけdjangoのprefetch_relatedについて考えてみる(条件付加したrelationのeager loading)

はじめに あるモデルに対してあるコンテキスト(文脈)に従った条件を加味した関係の元に値を取り出したい場合がある。そのような条件を付加した値を仮想的なフィールドとして扱うことができないかという話。 例えば以下の事がしたい X,Yというテーブルが存在…

SQLでloopを使わず連番の歯抜けの部分を探してみようという話

はじめに 例えば以下のような数字の列があるとする。下の例は連番を期待した数値なのだが一部歯抜けになっているという数字の列の例。 1, 2, 3, 6, 8 // 4,5,7がない このような連番を期待している数字の列から歯抜けになっている部分(上の例では4,5,7)を見…

djangoでprefetch_relatedで使えるようになる 独自のディスクリプタを作ってみる

prefetch_relatedで使えるようになる、独自のディスクリプタの作り方 はじめに 前回の記事 で prefetch_relatedの実装にprefetcher オブジェクトとでも呼ぶようなオブジェクトが必要になるということを説明した。 今度は、prefetcherのインターフェイスを実…

djangoでヘテロなリストのprefetch (generic foreign keyのprefetch_related)

djangoでヘテロなリストのprefetch djangoでヘテロなリストのprefetch。できないと思ったら普通に出来たのでわりとびっくりしたので記事にしてみた。 ヘテロなリスト? ここでのヘテロなリストと言うのは以下のようなリストを指している。 xs = [A(), B(), A(…