Postgresqlを利用した場合のデータ型「テキスト」の最大長

バージョンは2.2.1を利用しています。

データベースとしてPostgresqlを利用し、以下のアイテムを定義しました。

タイプ:JMXエージェント
データ型:テキスト
(以下略)

テーブルhistory_textの定義では、valueはtext型のため文字数制限は無し、と考えていました。

ですが、JMX監視によってvalueに格納された値は、65535バイトで切られていました。

SQLにて直接テーブルにINSERTした場合は、65535バイト以上も格納できました。

以下、質問となります。

1. データベースに限らず、データ型「テキスト」上限は65535バイトという制約は存在するのでしょうか。
  ※MySQLを利用しているのでしたら、text型は上限65535バイトなので理解できます。

2. 上限を変更する手段は存在するのでしょうか。

よろしくお願いします

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

ソースを少しみてみましたが、src/libs/zbxdbhigh/dbschema.c で、history_textテーブルの
valueカラムは、65535バイトに制限されているようです。

つまり、zabbix_server経由でDBに保存しているのが、65535バイトまでに制限されていると
思われます。

dbschema.c内の長さ制限を変更して対応できるかもしれませんが、他の箇所でも制限が入って
いるかもしれませんので、ここだけの修正で対応できるかは確認できていません。

ユーザー pokotan の写真

コメントありがとうございます。

ソースで制限されていたのですね。

ソースに手を加えることによるリスクを考えますと、

制限されていることを考慮した設計を進めようと思います。