フォーラムへの返信
-
投稿者投稿
-
松原正和キーマスター
けんすけさんこんにちは。
すみません、私の勉強が追いつかず、PostgreSQLのパーティション機能を試せていません。とりあえず、
https://www.postgresql.org/docs/10/static/catalog-pg-class.html
の記述から、パーティションテーブルもテーブル一覧の列挙対象にすることにします。
次のベータ版で修正したいと思いますので少々お待ちください。松原正和キーマスターももたさんこんにちは。
new TABLE名でテーブルが作成できるのは初めて聞いたのですが、どのRDBMSでしょうか?。一切の命令ができないというのはどのような状態でしょうか?。そのテーブルにSELECT等も実行できないということでしょうか?。
松原正和キーマスターともぞうさんこんにちは。
はい、プロシージャのソースは、information_schema.ROUTINES の ROUTINE_DEFINITION から取得しているのですが、どうも MySQL 8.0 になって、型の仕様が少し変わったのかもしれません。次のベータ版で修正したいと思いますので少々お待ちください。
松原正和キーマスターいそがいさんこんにちは。
たしかに、CREATE TABLEの順序は制御できたほうが良いですね。
テーブル名(エンティティ名)順もそうですが、依存関係でも何か制御できたほうが良いのでは?とも考えています。
ちょっと考えてみたいと思いますので少々お待ちください。
松原正和キーマスターMさんこんにちは。
はい、現象を確認しました。どうも、論理名表示にしたときにウィンドウの上の方に論理テーブル名を表示しているのですが、これが関係しているような気もします。ちょっと修正したいと思いますので少々お待ちください。
論理名で表示が初期表示のオプションもちょっと考えてみたいと思いますので少々お待ちください。松原正和キーマスターユッキーさんこんにちは。
はい、こちらでも再現しました。次のベータ版で修正したいと思いますので少々お待ちください。松原正和キーマスターハイエ・セラシエさんこんにちは。
もしかしたらですが、DB接続時のダイアログで「読み取り専用でログイン」をチェックしているか、あるいは「読み取り専用」エディションを使っていないでしょうか?。
どちらの場合でも、データベースツリーでデータベースのアイコンの右下にオレンジ地の白抜き文字でRの文字が付くようになります。松原正和キーマスターytさんこんにちは。
Shift+DelによるNULLと”の切り替えですが、たとえば、Oracleでは”はNULLの意味なのでトグルできないように制御していますが…PostgreSQLなのですよね。
なかなか再現できないのですが、具体的にはどのような動きになっているのでしょうか?。(たとえば、NULLにはなるが、何度Shift+Delを押下しても ” にならないとか)「別の手段で強引にNotNull項目に空白をセットしたデータを作成しそのレコードの別の項目を変更」の件ですが、A5:SQL Mk-2でテーブル内容を表示した後、別のツールで主キーを変更すると、A5:SQL Mk-2はその変更を認識できないので更新時にレコードを見つけることができず、「Update failed. Found 0 records」になってしまいます。
松原正和キーマスター荒木さんこんにちは。
例えば、サーバーの文字コードの種類と、CHAR型の長さがバイト単位なのか文字数単位なのか、などを指定するUIにすれば、それも不可能ではないと思うのですが、例えば、EBCDIC等はWindowsでは扱うのが難しかったり、パフォーマンス上の問題を引き起こしたり、文字コードを指定させるUI自体がおそらく利用上の混乱を招くような気がして、ちょっと難しい気がします。
申し訳ありませんが、現状ではこれ以上は少しむつかしいかと思います。松原正和キーマスター佐久間 大典さんこんにちは。
「Unexpected server response:」ですが、PostgreSQLのプロトコルで、レスポンスの種類を表す1文字(1byte)のコードが想定された値と異なったときにおこるエラーのようです。
本来は発生し得ないもののようですが、以前同じエラーで報告を頂いたこともあったのですが、この時はネットワークのインフラレベルの不調が原因と思われるということになりました。ネットワーク上でのデータエラーなどが想定されるようにも思います。
あと、Keep Aliveが2秒というのはちょっと短すぎるような気がします。恐らく通常の操作にも影響が出る(レスポンスなど)のではないでしょうか?。もう少し長い値
(20~30秒あるいはそれ以上)で良いと思います。松原正和キーマスターShunさんこんにちは。
はい、現象を確認しました。次のベータ版で修正したいと思いますので少々お待ちください。
松原正和キーマスター亀 行道さん、たかはしさん、Kazuさん、んさんこんにちは。
はい、現象を確認しました。DBツリーを非表示にした場合不具合が起こっていたようです。
次のベータ版 (Version 2.14.16)で修正したいと思います。
松原正和キーマスター荒木さんこんにちは。
「文字列右側をトリム」とは文字列型(CHAR, VARCHAR等)全てで、文字列の右側に付加されている半角空白を取り除きます。(ただし、それによって “” になってしまう場合はトリムしません)
松原正和キーマスターよしあきさんこんにちは。
データベースへの接続方式は何でしょうか?。直接接続を使っている場合、OCI経由での接続は試せますでしょうか?。インスタントクライアントなどでも構いません。
https://www.oracle.com/technetwork/jp/topics/index-099943-ja.htmlあと、プラットフォーム不明のDBからインポートというのも気になります。なにか、マルチバイト文字が途中で切れてインポートされていたり、シフトアウト・シフトインの文字がなぜか残ってインポートされたりということはないでしょうか?。SQLのLENGTH()やLENGTHB()関数で取り込んだ長さがおかしくないか確認できますでしょうか?。
松原正和キーマスター荒木さんこんにちは。
CHAR型の項目に全角文字がある場合、余計な空白が付いてしまったりするのはなかなかに根が深い問題です。データベースによってCHARの長さが文字単位だったりBYTE単位だったり…当然文字コードも異なるのでなかなか完全には対応しにくい状況です。
ちょっと妥協的な対応になりますが、「文字列右側をトリム」する機能を追加したいと思います。単一エクスポートの進捗ですが、プログレスバーではこれは実は難しいです。理由はエクスポートの際、「片方向結果セット」モードでクエリーを実行しますが、これは結果セット全体の件数を取得できないためです。何件出力したかは当然わかるのですが、全体件数が分からないのでプログレスバーでの進捗表示ができません。代わりに、ステータスバーを用意して、「テーブル名 : ○○ records.」を更新していく方式にしたいと思います。
エクスポートの並び順ですが、一括エクスポートでは現状でもソートはしていません。理由はバックアップ等の目的なら並び順は関係ないですし、order byを付けないほうが速い可能性があるからです。
あと、巨大なテーブルをエクスポートすると終わるまで応答が無くなる件ですが、こちらも対処したいと思います。(途中でキャンセルできるようにも) -
投稿者投稿