gemini、過去の失敗を学んで答えが進化した(自律的進化)


md5で2つのデータベースを比較

先月、暫定サーバ(ver.17)データを仮サーバ(ver.15)にリストアした際、geminiが教えてくれた新旧データをmd5で比較するSQL文が使い物にならなかった。(aiも間違えるんだと実感したエピソード)

今回また、ほぼ同じ質問をした

仮サーバ(ver.15)データを新サーバ(ver.18)へリストア予定
改めてgeminiに新旧データを比較するSQL文を尋ねると、答えが進歩・改良されてました

gemini、自分で進化してる!
gemini、スゲ~!
DELLサーバが届いた!

gemini、下の2つはどう違うの?

1:SELECT md5(string_agg(hash, ”))FROM (SELECT md5(t.*::text) AS hash FROM (SELECT * FROM TBLmeisai ORDER BY IDmeisai) AS t ) AS sub;

2:SELECT md5(CAST((array_agg(f.* ORDER BY 1)) AS text)) FROM (SELECT * FROM [重要テーブル名]) AS f;

1は、前回ver.15とver.17のデータ比較でmd5が違った文
2が、gemini改良版

前回のgemini解説:
Ver.17: icu ロケールが標準になりつつある
Ver.15: 従来の libc ロケールが主流
この「並び順(ORDER BY)のルール」が 15 と 17 でわずかに異なるため、前にお伝えした string_agg を使った MD5 計算だと、並び順が変わってしまい、結果が合わなくなることがあります。

前回と今回のSQL比較解説

md5で2つのデータベースを比較

余談:

geminiが作ってくれた改良版md5比較SQL文(=160万円分の仕事してくれるかな)
あんな見積、止めたほうが良いですよ

SELECT md5(CAST((array_agg(f.* ORDER BY 1)) AS text)) FROM (SELECT * FROM [重要テーブル名]) AS f;

シンギュラリティ、いつか来るのかな?


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA