-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
scalar-expressions-and-types.mdの更新 #34
Conversation
@ashigeru 文字列の あと一点質問ですが、キャスト変換の表で下記が
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
基本的にOKですが、コメントした箇所について意見ください。
`v'` の長さが `T` の `length` よりも大きい場合、 `v'` を `T` の `length` まで末尾からオクテットを取り除いたものが式の評価結果となる。 | ||
~ 文字列を表す値 `v` に対し、 `v` の長さが `T` の `length` と等しい場合、 `v` が式の評価結果となる。 | ||
`v` の長さが `T` の `length` よりも小さい場合、 `v` を `T` の `length` まで末尾にパディング文字を加えたものが式の評価結果となる。 | ||
`v` の長さが `T` の `length` よりも大きい場合、 `v` を `T` の `length` まで末尾からオクテットを取り除いたものが式の評価結果となる。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ちょっと思ったのですが、この仕様だと UTF-8 が壊れる気がするけどどうですかね。
char にバイト列入れていた場合とぶつかりそうだから何とも言えないところではあるんですが。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確かにそうですね。validなUTF-8文字の境界で区切るようにすべきな気がします。char/varcharはUTF-8専用で、バイナリ列はoctet/octet varyingを使うという方針がいいように思います。下記のような感じでしょうか。
v
の長さが T
の length
よりも大きい場合、 T
の length
以下になるまで末尾からUTF-8文字を取り除いたものが式の評価結果となる。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
で、削りすぎた箇所にパディングを入れるかどうかという問題が
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
変換後の型がcharacter
の場合、character
はUTF-8文字列であって長さがちょうど length
バイトであるもの、ということなので、削った結果が length
バイトに足りてなければパディング一択ではないでしょうか。
character variant
の場合はパディングする理由がないので問題にならないですね。
`v'` の長さが `T` の `length` よりも大きい場合、 `v'` を `T` の `length` まで末尾からオクテットを取り除いたものが式の評価結果となる。 | ||
~ 文字列を表す値 `v` に対し、 `v` の長さが `T` の `length` と等しい場合、 `v` が式の評価結果となる。 | ||
`v` の長さが `T` の `length` よりも小さい場合、 `v` を `T` の `length` まで末尾にパディング文字を加えたものが式の評価結果となる。 | ||
`v` の長さが `T` の `length` よりも大きい場合、 `v` を `T` の `length` まで末尾からオクテットを取り除いたものが式の評価結果となる。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
こちらも同様。
キャストの内容を見たところ、エラーになる余地がないのでご指摘の通りかと。 |
@ashigeru 上記コメントを反映しました。再度確認お願いします。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
national
パラメータに言及があった部分を削除