In Grouper 2.5.0 patches we will support large text widths in the database.

Different databases handle this differently.  And it is less efficient than a varchar(4k).  So

  1. Have a varchar(4k) for data less than that
  2. Have a column for larger data

    DatabaseLarge text column typeMax storageDDLUtilsHibernateNotes
    Oracleclob4gigyesyes though might need a different mapping file
    Postgresvarchar10megnoyes with Stringif we need more space, text goes up to a gig
    Mysqlmediumtext16megnoyes with Stringif we need more space, longtext up to 4 gig
    Hsqlclob16megyesyes though might need oracle mapping file




    DatabaseDDL
    Oracle


    ALTER TABLE grouper_config ADD config_value_clob clob;
    ALTER TABLE grouper_config ADD config_value_clob_bytes integer;


    Postgres


    ALTER TABLE grouper_config ADD COLUMN config_value_clob varchar(10000000);
    ALTER TABLE grouper_config ADD COLUMN config_value_clob_bytes BIGINT;


    Mysql


    ALTER TABLE grouper_config ADD COLUMN config_value_clob mediumtext;
    ALTER TABLE grouper_config ADD COLUMN config_value_clob_bytes BIGINT;


    Hsql


    ALTER TABLE grouper_config ADD COLUMN config_value_clob clob;
    ALTER TABLE grouper_config ADD COLUMN config_value_clob_bytes BIGINT;






  3. Have a column with size of larger data column (which also indicates that the larger column is being used)
  4. Note we can base64 encode binary data in here if needed


Use this for config in database, attributes, etc