You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Naveen Gangam (JIRA)" <ji...@apache.org> on 2015/02/27 22:24:04 UTC

[jira] [Commented] (HIVE-9815) Metastote column"SERDE_PARAMS"."PARAM_VALUE" limited to 4000 bytes

    [ https://issues.apache.org/jira/browse/HIVE-9815?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14340836#comment-14340836 ] 

Naveen Gangam commented on HIVE-9815:
-------------------------------------

So the only issue in expanding the max size of SERDE_PARAMS.PARAMS_VALUE is its support Oracle. The database needs to be configured and restarted with the new settings. According to the documentation, https://docs.oracle.com/database/121/REFRN/refrn10321.htm#REFRN10321,

Altering MAX_STRING_SIZE will update database objects and possibly invalidate them, as follows:
* Tables with virtual columns will be updated with new data type metadata for virtual columns of VARCHAR2(4000), 4000-byte NVARCHAR2, or RAW(2000) type.
* Functional indexes will become unusable if a change to their associated virtual columns causes the index key to exceed index key length limits. Attempts to rebuild such indexes will fail with ORA-01450: maximum key length exceeded.
* Views will be invalidated if they contain VARCHAR2(4000), 4000-byte NVARCHAR2, or RAW(2000) typed expression columns.
* Materialized views will be updated with new metadata VARCHAR2(4000), 4000-byte NVARCHAR2, and RAW(2000) typed expression columns



> Metastote column"SERDE_PARAMS"."PARAM_VALUE"  limited to 4000 bytes
> -------------------------------------------------------------------
>
>                 Key: HIVE-9815
>                 URL: https://issues.apache.org/jira/browse/HIVE-9815
>             Project: Hive
>          Issue Type: Bug
>          Components: Metastore
>    Affects Versions: 0.14.0
>            Reporter: Naveen Gangam
>            Assignee: Naveen Gangam
>            Priority: Critical
>
> Currently, in the hive metastore schema, the length of the column SERDE_PARAMS.PARAM_VALUE is set to 4000 bytes. This is not enough for users that have a key with a value larger than 4000 bytes. Say something like hbase.columns.mapping.
> I am not a database historian but appears that this limitation may have been put in place because Oracle's varchar2 was restricted to 4k bytes for a long time until recently. 
> According to the following documentation, even today Oracle DB's varchar2 only supports a max size of 4000 unless a configuration parameter MAX_STRING_SIZE is set to EXTENDED.
> http://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF55623
> {code}
> MAX_STRING_SIZE=EXTENDED
> {code}
> Postgres supports a max of 1GB for character datatype according to http://www.postgresql.org/docs/8.3/static/datatype-character.html
> MySQL can support upto 65535 bytes for the entire row. So long as the PARAM_KEY value + PARAM_VALUE is less than 65535, we should be good.
> http://dev.mysql.com/doc/refman/5.0/en/char.html
> SQL Server's varchar max length is 8000 and can go beyond using "varchar(max)".
> http://dev.mysql.com/doc/refman/5.0/en/char.html
> Derby's varchar can be upto 32672 bytes.
> https://db.apache.org/derby/docs/10.7/ref/rrefsqlj41207.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)