PostgreSQLでSQL発行時のエラー対応

PostgreSQLでselect句に定数が含まれていた場合、下記エラーが出力されることがあります。後に続いて型を決めてやれば問題は解消します。::textの部分です。

failed to find conversion function from unknown to text
select *
from (select a_column, 'const'::text as "b_column" from c_table)
  as d_table

メモでした。

JMeter走行でTimeoutedException

Windows端末でJMeter走行中にJMeter自身のExceptionが「結果をツリーで表示」リスナーの結果画面に表示される場合があります。これは、スレッド数を多くした場合や、画像やjavascriptやcssが多い場合に発生します。最終的にはクライアント端末の同時接続数を超えたことが原因です。

Windowsのレジストリに項目を追加することで、本事象を回避することが出来るのでメモしておきます。下記内容をテキストファイルに保存して、拡張子を.regとして実行すれば簡単です。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"MaxUserPort"=dword:0000FFFE
"TcpTimedWaitDelay"=dword:0000001E

GoogleGroupsで謎のエラー

謎のエラーが出てdocomoアドレスをGoogleGroupsに登録できませんでした。

エラーメッセージをパッと見て思いついたのが、登録済みGmailのGoogleアカウントに、追加しようとしているdocomoアドレスを結びつけている可能性でした。

エラーメッセージを見る限り、「予備のメールアドレス」の部分が妙に引っかかります。特に原因特定するつもりもありませんが、同様のメッセージで悩んでいる人のためになるかもしれないと記しておきます。

招待状が送信されませんでした
新しい招待状が送信されませんでした
1 人は既にグループのメンバーです。指定されたメールアドレスがこのユーザーのメインのメールアドレスか予備のメールアドレスかは不明です。

溶かしても良いレア艦個人的メモ(艦これ)

レア艦は改造時にレア装備を持ってくることもあるため無下に扱えません。毎回調べている気がするので、これを機にメモしておきます。

艦名 破棄 Lv 説明
三隈 NG 30 「20.3cm(3号)連装砲」
清霜 OK 30 「三式水中探信儀」
浜風 OK 30 特に目ぼしい装備はない。
江風 NG 30 「12.7cm連装砲B型改二」
非現実的だがLv75の改二は2本目の「12.7cm連装砲B型改二」と「照明弾」を持ってくる。
春雨 NG 30 「12.7cm連装砲B型改二」「ドラム缶」
葛城 OK 50 「零戦52型丙(六〇一空)」改装設計図が必要なので改造は実質無理。
卯月 OK 25 特に目ぼしい装備はない。
時津風 OK 30 「12.7cm連装高角砲(後期型)」レアだが他装備で代替可能。
能代 OK 35 特に目ぼしい装備はない。
阿賀野 OK 35 特に目ぼしい装備はない。
能代 OK 35 特に目ぼしい装備はない。
夕雲 OK 30 特に目ぼしい装備はない。

Nintendo3DSをオンライン修理受付で修理に出してみた

Nintendo3DSの電源が入らなくなり、任天堂のオンライン修理受付を使用してみたのでメモしておきます。オンライン修理受付~修理完了品到着まで約12日有しました。

流れメモ

  1. 任天堂ウェブページからオンライン修理受付を行います。(ページ後半に分かり易いフローチャートが載っています。)
  2. 故障したNintendo3DSを梱包します。手元に手頃なサイズの段ボールが無かったため、ヤマト運輸の宅配便コンパクトを使用しました。セブンイレブンのレジで言えば60円程で段ボール(今回は専用BOX(薄型じゃない方)を使用)を購入できます。更に、ポスティングされている不要な広告をぐしゃぐしゃに丸め緩衝材として使用しました。
  3. 「修理品が到着しました」メールが届きます。(約3日)
  4. 「修理完了&発送」メールが届きます。(約7日)
  5. 修理完了品が修理費用(今回:7695円)の代金引換で到着します。(約2日)
到着したダンボールの全景

到着したダンボールの全景

箱を開いた姿

箱を開いた姿

世界樹の迷宮Ⅴの発売直前にお亡くなりになったので……

世界樹の迷宮Ⅴの発売直前にお亡くなりになったので……

KindleUnlimitedで気になったコミックタイトル

Amazonで400ページほど存在している、KindleUnlimitedで対象となったコミックについて、エロ本に塗れながらも、ページを捲っていて気になったタイトルをメモしておきます。(折角設定したAmazonアフィリエイトを試してみたかったのが本音。)

ちなみに、1カ月無料期間終了後はそのまま有料サービスに移行してしまう、いつものAmazonのやり方ですので注意が必要です。キャンセルはこちらのページから可能です。(いつから課金されるかも書かれている。)

アニメが面白かったのでピックアップ。序盤を読んだだけで引き込まれた。個人的にはアニメより原作の方が好き。名言が連発されている。「だし巻きのこと、細胞レベルで好きなんだ」等。

深夜アニメのCMで良く見かけるためピックアップ。低評価なAmazonレビューが目立つ。確かに、主人公をはじめとしたキャラクタの気持ち悪い面が際立ってしまっている。飯の作画が全て。

以下、気になったタイトルだけをずらずら続けます。(未読)気になるタイトルは「双葉社」「一迅社」「芳文社」あたりに固まっているので、出版社でフィルタリングした方が効率的な気がしてきました。






AmazonJSでアフィリエイトを始める

全く興味ありませんでしたが、知識として興味があったので試してみました。色々と大変でした。

AWSアカウントの準備

まずはamazon.comのアカウントを取得します。商品を購入するamazon.co.jpのアカウントではありません。襷に長し感は有りますが、ここで取得するアカウントはAWSのアカウントです。AWSで提供されるサービスが多すぎて意味が分からなくなります。

ルートユーザ(今取得したアカウント)でアフィリエイト用キーを発行しても良いのですが、「ルートユーザから払出した子ユーザから発行したアフィリエイト用キーを使うのが最近の流行りだよ!」とAmazonから勧められるので大人しく従います。サービスメニュー(サービスが山ほどあるので頑張って見つけてください)から「IAM(正式にはアイアムと発音)」を選択します。サイドメニュー(ダッシュボード)より「ユーザ」を選択します。新規ユーザを払出して、アクセスキーとシークレットキーを取得します。シークレットキーは後では2度と確認出来ないのでメモっておきましょう。

次に、払出した子ユーザに対して権限を付与します。ユーザ詳細ページの「アクセス許可」タブから、「ポリシーのアタッチ」をして、「AdministratorAccess」を付与します。(何の権限が最低限必要なのか、最後まで不明でした。色々組み合わせて試したのですが分からず。全権限付与しちゃうと、子ユーザを払出する意味は無いのかも。)権限が足りない場合は、後で実施するAmazonJSの使用中に下記エラーが発生します。後で分かったのですが「Amazon EC2 Container Service」権限さえあれば良いと思います。

Amazon Product Advertising APIのエラー
UnauthorizedOperation
Your AccessKeyId is not authorized to perform this operation. Please check IAM policies for the Access Key.

アソシエイトアカウントの準備

支払先等を設定するためのアカウントも個別に取得する必要があります。淡々とアカウント登録を進め、トラッキングID(日本アカウントの場合は、末尾が「-22」となります)を取得して完了です。ちなみに、銀行振替の設定だと面倒そうで、Amazonギフトとして受け取る設定だとワンクリックで設定完了しました。アカウントが正常に設定できていないと、後で実施するAmazonJSの使用中に下記エラーが発生します。

Amazon Product Advertising APIのエラー
AWS.MissingParameters
リクエストには、必要なパラメータが含まれていません。必要なパラメータには、AssociateTagなどがあります。

AmazonJSの準備

AmazonJSをインストールして設定ページで、アクセスキー、シークレットキー、アソシエイトタグを入力します。

記事の執筆画面のメニューにAmazonマークが現れており、URL入力等で簡単に記事へアフィリエイトリンクを挿入できてしまいます。折角なので、最後に最近読んで面白かった漫画のアフィリエイトを貼っておきます。

愛宕山踏破

前回から始まったハイキング記録が早速1回目で止まってしまっていました。その後、愛宕山にも登ったので更新しておきます。頂上には愛宕神社があります。

道程

  1. JR京都駅前から京都バスに乗り「清滝(終点)」まで行きます。(8:58が最終バスなので注意)
  2. 橋を渡り、鳥居をくぐると、「軽い気持ちで登るな」と厳しい道中であることを警告する看板が左手に現れます。
  3. 道中は1/40、2/40~40/40と進捗具合を掲示してくれています。従って只管歩きます。
  4. 頂上直前に門があり、くぐると愛宕神社がみえます。頂上には、下界より遅い時期にも桜が咲いていました。桜の種類が違うのか、気温が違うのか、理由は不明ですが。
  5. 逆方向のルートで下山します。小石が多く、狭くて傾斜が厳しい道中です。
  6. 山を抜けると民家が現れ、熱々に熱せされたアスファルトの道を進みます。
  7. 保津峡駅にたどり着きます。橋上に設置されており、トンネルに挟まれた駅です。最終的な目的地としてもふさわしい壮観な駅です。

道中記録

最初の鳥居

最初の鳥居


神聖そうな石が無造作に投げられている

神聖そうな石が無造作に投げられている


家みたいなのがある

家みたいなのがある


こんなのあり!?

こんなのあり!?


時期外れの桜

時期外れの桜


またここから登ります

またここから登ります


入口

入口


下山して駅付近まで歩くと橋が見える

下山して駅付近まで歩くと橋が見える


橋上に駅が設置されている様子が見える

橋上に駅が設置されている様子が見える


壮観な駅

壮観な駅

[新企画]六甲山(おいしい水コース)踏破

新企画

登った山を記録する新企画を開始します。撮影した写真を交えつつご紹介できればと思います。

趣旨

今回は、六甲山を登る過程に点在する「おいしい水」を巡るコースがあるブログで紹介されていましたので、実際に辿ってみました。初めに言っておくと、結局飲めたのは「天然炭酸水」だけです。

道程

実際に辿ってみると、2016/05/05時点では過去の台風で一部の道が崩落しており、通行禁止となってしまっておりました。そのため、残念ながら「鼓ケ滝」付近にある「高塚の清水」は飲めませんでした。

コース

目印となるポイントを記します。

  1. JR六甲道駅(付近に「六甲宮ウォーター」有)以降はひたすら北に向かって歩く。
  2. 阪急六甲駅
  3. 神戸大学のキャンパス脇(ものすごい急坂です)
  4. 六甲ケーブル下駅(駅を正面にして右に逸れる道を行きます)
  5. たくさんの老人ホーム(登山口が分かりにくいので注意してください。一見何もなさそうに見えますが、老人ホームの道をひたすら行った突き当りです)
  6. 六甲ケーブル上駅(道中ではないのでトイレ休憩等に寄り道してください)
  7. 六甲山ガーデンテラス(昼食に最適な場所です。レストランもあると言えばあります。通り抜けると左右にわかれて下り坂がありますので、右の坂を下ってください。)
  8. 極楽茶屋跡(私は発見できませんでした。かなり分かりにくいのではないかと思いますので、目印にならないかもしれません)
  9. 紅葉谷コース(ひたすら下ります。ここに「有馬四十八滝」と各滝においしい水があるようです。序盤に見える「蟇滝」「百間滝」「似位滝」「七曲滝」などは初心者の装備では危険が伴うため、私はいきませんでした。「鼓ケ滝」は公園化しているので手軽に行けるようですが、前述した通り道が封鎖されているので行けません)
  10. 封鎖口(3箇所くらい封鎖されているルートがあります。大変残念ですが迂回しましょう。「六甲ガーデンテラス」から「ずっと下り坂だ!」と思っていると、迂廻路はキッツイ上り坂となっていて心を挫かれるので注意してください)
  11. 他下山ルートと合流
  12. 杖置き場(山を下りきりアスファルトが見えてくる頃、左手にあります。右手に曲がると左右にホテルが点在しています)
  13. S字下り坂(上記アスファルトの道をしばらく行くと、左手にS字の下り坂が見えますので下ります)
  14. 炭酸泉源公園(S字下り坂を降り切る前に右手に見えます。一見、全く飲めなさそうですが、上を見上げると祠があり、その前に設置してある蛇口から天然の炭酸水を飲むことが出来ます。ぶっちゃけ、硫黄臭と鉄分臭で不味いです。珍しさだけでした……)
  15. 有馬温泉(温泉にでも入って体を休めましょう)

道中記録

なんと、最初の「おいしい水ポイント」である「六甲宮ウォーター」を見逃してしまい飲めませんでした。最初の写真は「六甲ケーブル下駅」の右脇を抜けた老人ホーム街から始まります。

老人ホームを右手と左手に見ながら突き当りに登山口があります

老人ホームを右手と左手に見ながら突き当りに登山口があります


登山口を入ったところ

登山口を入ったところ

やっと登山っぽくなってきました

やっと登山っぽくなってきました

トイレ休憩のために立ち寄った六甲ケーブル上駅

トイレ休憩のために立ち寄った六甲ケーブル上駅

六甲ガーデンテラスには昼食に最適な場所

六甲ガーデンテラスには昼食に最適な場所

ガーデンテラスから降り始めて暫くすると立てかけてある看板

ガーデンテラスから降り始めて暫くすると立てかけてある看板

最後の迂廻路は厳しい上り坂

最後の迂廻路は厳しい上り坂

これほど社会貢献するラクガキを初めて見た

これほど社会貢献するラクガキを初めて見た

蛇口から炭酸水

蛇口から炭酸水

PostgreSQLのpg_dumpで単一のfunctionのみ取得する

pg_dumpでは-tオプションで単一または複数のtable/view/sequenceを指定して定義の抽出が可能ですが、functionの指定はできません。これを解決する、裏技チックな方法が英語ページにしか掲載されていなかったので、日本語ページの一人目になるべく本記事を執筆しました。

pg_dump -Fc -s | pg_restore -P 'funcname(args)' > function_define.dmp

-sオプションでスキーマ(定義)のみを抽出します。(ここでいうスキーマとは、テーブルの完全修飾名の前半に使う名称(schema)ではないので注意。単なる定義情報(雑に言うとcreate table)のことを指します。この注意事項は本家にも記されています。ややこしいですね。)

これと–schemaオプションと混乱しないでください。”schema”という単語を異なる意味で使用しています。pg_dump

結果をパイプでpg_restoreに繋いでいます。pg_restoreはcustom形式しか処理できないため、-Fcオプションを付与しています。(デフォルトはplainです。)

-Pは名称を指定してcustomからfunctionの定義を取り出すことができます。また、pg_restoreは特に接続先データベースが指定されていない場合、標準出力にplain形式で吐き出すため、リダイレクトでファイルに出力しています。

データベース名が指定された場合、pg_restoreはそのデータベースに接続し、アーカイブを直接そのデータベースにリストアします。 データベース名が指定されなかった場合は、データベースを再構築するために必要となるSQLコマンドが含まれたスクリプトが作成されます(ファイルもしくは標準出力に書き出されます)。pg_restore

functionに引数(args)がある場合、正しい引数の数だけ、型を指定してやる必要がありますので注意が必要です。不明の場合は下記コマンドで確認できるでしょう。

pg_dump -Fp -s | less

注意事項

私の環境では2回以上-Pを指定した場合、最後に指定したfunction以外が無視されました。そのため、下記のように工夫する必要があります。

pg_dump -Fc -s | pg_restore -P 'funcname(args)' > function_define.dmp
pg_dump -Fc -s | pg_restore -P 'funcname2(args)' >> function_define.dmp
pg_dump -Fc -s | pg_restore -P 'funcname3(args)' >> function_define.dmp

最終的な出力ファイルを見ると、SETが重複して出力されていますが、特に弊害はありません。

参考