Limite dimensionale del carattere che varia Postgresql


20

Qual è il limite di dimensione di vari tipi di dati in postgresql? Ho visto da qualche parte che per character varying(n), varchar(n) ndeve essere compreso tra 1 e 10485760. È vero?

Quali sono i formati validi per character(n), char(n)e text?

Risposte:


24

La dimensione massima dei tipi di caratteri limitati (ad esempio varchar (n)) in Postgres è 10485760. Puoi verificarlo in questo modo:

create table test(id serial primary key, str varchar(10485761));

ERROR:  length for type varchar cannot exceed 10485760

Il limite è definito nel seguente frammento di codice sorgente (htup_details.h), tuttavia non è esplicitamente menzionato nella documentazione ufficiale:

/*
 * MaxAttrSize is a somewhat arbitrary upper limit on the declared size of
 * data fields of char(n) and similar types.  It need not have anything
 * directly to do with the *actual* upper limit of varlena values, which
 * is currently 1Gb (see TOAST structures in postgres.h).  I've set it
 * at 10Mb which seems like a reasonable number --- tgl 8/6/00.
 */
#define MaxAttrSize     (10 * 1024 * 1024)

Il numero massimo di caratteri per tipi di lunghezza illimitata variabile (testo, varchar) non è definito. Esiste un limite di dimensioni in byte per tutti i tipi di stringa :

In ogni caso, la stringa di caratteri più lunga possibile che può essere memorizzata è di circa 1 GB.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.