Thread: BUG #6177: Size field type TEXT
The following bug has been logged online: Bug reference: 6177 Logged by: Claudio Oliveira Email address: claudiomsi@hotmail.com PostgreSQL version: 9.1rc1 Operating system: Windows 7 Description: Size field type TEXT Details: Hello, Use version 8.4 and have no issues with the field type TEXT. In version 9.1rc1 is limited to 4680 characters. Where do I change that size? Thank you.
"Claudio Oliveira" <claudiomsi@hotmail.com> wrote: > Use version 8.4 and have no issues with the field type TEXT. > > In version 9.1rc1 is limited to 4680 characters. > > Where do I change that size? test=# create table txt (val text); CREATE TABLE test=# insert into txt values (repeat('long string', 1000000)); INSERT 0 1 test=# select char_length(val) from txt; char_length ------------- 11000000 (1 row) What makes you think it's limited to 4680 characters? -Kevin
Kevin Grittner wrote: > "Claudio Oliveira" <claudiomsi@hotmail.com> wrote: > > > Use version 8.4 and have no issues with the field type TEXT. > > > > In version 9.1rc1 is limited to 4680 characters. > > > > Where do I change that size? > > test=# create table txt (val text); > CREATE TABLE > test=# insert into txt values (repeat('long string', 1000000)); > INSERT 0 1 > test=# select char_length(val) from txt; > char_length > ------------- > 11000000 > (1 row) > > What makes you think it's limited to 4680 characters? My guess is there is an index on the column: test=> create table txt (val text); CREATE TABLE test=> create index i_txt on txt(val); CREATE INDEX test=> insert into txt values (repeat('long string', 1000000)); ERROR: index row requires 125944 bytes, maximum size is 8191 You should probably not index long columns but rather index an md5 hash of the value. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
DQpIZWxsbywNCg0KSSdtIGRvaW5nIHRoZSB0ZXN0IGluIFBHQWRtaW4uDQoN Ck11c3QgYmUgYSBidWcgaW4gUEdBZG1pbS4NCg0KSSdtIHNvcnJ5IEkgaGF2 ZSBub3QgdGVzdGVkIGluIHBzcWwNCg0KY3JlYXRlIHRhYmxlIHR4dCAodmFs IHRleHQpOw0KdHh0IGluc2VydCBpbnRvIHZhbHVlcyDigIvigIsocmVwZWF0 ICgneCcsIDQ1MDApKTsNCmNoYXJfbGVuZ3RoIHNlbGVjdCAodmFsKSBmcm9t IHR4dDsNCnR4dCBpbnNlcnQgaW50byB2YWx1ZXMg4oCL4oCLKHJlcGVhdCAo J3gnLCA0Njg1KSk7DQpjaGFyX2xlbmd0aCBzZWxlY3QgKHZhbCkgZnJvbSB0 eHQ7DQoNCnNlbGVjdCAqLCBsZW5ndGggKHZhbCkgdmFsIGlzIG51bGwsICh2 YWwgfiAneCcpIGZyb20gdHh0Ow0KDQpUaGFuayB5b3UuDQpDbGF1ZGlvIE9s aXZlaXJhIA0KaHR0cDovL3d3dy5tc2lzb2x1Y29lcy5jb20uYnINCg0KPiBG cm9tOiBicnVjZUBtb21qaWFuLnVzDQo+IFN1YmplY3Q6IFJlOiBbQlVHU10g QlVHICM2MTc3OiBTaXplIGZpZWxkIHR5cGUgVEVYVA0KPiBUbzogS2V2aW4u R3JpdHRuZXJAd2ljb3VydHMuZ292DQo+IERhdGU6IFRodSwgMjUgQXVnIDIw MTEgMTM6MjA6MjIgLTA0MDANCj4gQ0M6IGNsYXVkaW9tc2lAaG90bWFpbC5j b207IHBnc3FsLWJ1Z3NAcG9zdGdyZXNxbC5vcmcNCj4gDQo+IEtldmluIEdy aXR0bmVyIHdyb3RlOg0KPiA+ICJDbGF1ZGlvIE9saXZlaXJhIiA8Y2xhdWRp b21zaUBob3RtYWlsLmNvbT4gd3JvdGU6DQo+ID4gIA0KPiA+ID4gVXNlIHZl cnNpb24gOC40IGFuZCBoYXZlIG5vIGlzc3VlcyB3aXRoIHRoZSBmaWVsZCB0 eXBlIFRFWFQuDQo+ID4gPiANCj4gPiA+IEluIHZlcnNpb24gOS4xcmMxIGlz IGxpbWl0ZWQgdG8gNDY4MCBjaGFyYWN0ZXJzLg0KPiA+ID4gDQo+ID4gPiBX aGVyZSBkbyBJIGNoYW5nZSB0aGF0IHNpemU/DQo+ID4gIA0KPiA+IHRlc3Q9 IyBjcmVhdGUgdGFibGUgdHh0ICh2YWwgdGV4dCk7DQo+ID4gQ1JFQVRFIFRB QkxFDQo+ID4gdGVzdD0jIGluc2VydCBpbnRvIHR4dCB2YWx1ZXMgKHJlcGVh dCgnbG9uZyBzdHJpbmcnLCAxMDAwMDAwKSk7DQo+ID4gSU5TRVJUIDAgMQ0K PiA+IHRlc3Q9IyBzZWxlY3QgY2hhcl9sZW5ndGgodmFsKSBmcm9tIHR4dDsN Cj4gPiAgY2hhcl9sZW5ndGgNCj4gPiAtLS0tLS0tLS0tLS0tDQo+ID4gICAg IDExMDAwMDAwDQo+ID4gKDEgcm93KQ0KPiA+ICANCj4gPiBXaGF0IG1ha2Vz IHlvdSB0aGluayBpdCdzIGxpbWl0ZWQgdG8gNDY4MCBjaGFyYWN0ZXJzPw0K PiANCj4gTXkgZ3Vlc3MgaXMgdGhlcmUgaXMgYW4gaW5kZXggb24gdGhlIGNv bHVtbjoNCj4gDQo+IAl0ZXN0PT4gY3JlYXRlIHRhYmxlIHR4dCAodmFsIHRl eHQpOw0KPiAJQ1JFQVRFIFRBQkxFDQo+IAl0ZXN0PT4gY3JlYXRlIGluZGV4 IGlfdHh0IG9uIHR4dCh2YWwpOw0KPiAJQ1JFQVRFIElOREVYDQo+IAl0ZXN0 PT4gaW5zZXJ0IGludG8gdHh0IHZhbHVlcyAocmVwZWF0KCdsb25nIHN0cmlu ZycsIDEwMDAwMDApKTsNCj4gCUVSUk9SOiAgaW5kZXggcm93IHJlcXVpcmVz IDEyNTk0NCBieXRlcywgbWF4aW11bSBzaXplIGlzIDgxOTENCj4gDQo+IFlv dSBzaG91bGQgcHJvYmFibHkgbm90IGluZGV4IGxvbmcgY29sdW1ucyBidXQg cmF0aGVyIGluZGV4IGFuIG1kNSBoYXNoDQo+IG9mIHRoZSB2YWx1ZS4NCj4g DQo+IC0tIA0KPiAgIEJydWNlIE1vbWppYW4gIDxicnVjZUBtb21qaWFuLnVz PiAgICAgICAgaHR0cDovL21vbWppYW4udXMNCj4gICBFbnRlcnByaXNlREIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly9lbnRlcnByaXNl ZGIuY29tDQo+IA0KPiAgICsgSXQncyBpbXBvc3NpYmxlIGZvciBldmVyeXRo aW5nIHRvIGJlIHRydWUuICsNCiAJCSAJICAgCQkgIA==
Claudio Oliveira <claudiomsi@hotmail.com> wrote: > I'm doing the test in PGAdmin. > > Must be a bug in PGAdmim. > > I'm sorry I have not tested in psql > > create table txt (val text); > txt insert into values ââ(repeat ('x', 4500)); > char_length select (val) from txt; > txt insert into values ââ(repeat ('x', 4685)); > char_length select (val) from txt; > > select *, length (val) val is null, (val ~ 'x') from txt; Hmm. Maybe you should try taking this to the pgadmin-support list. Your script came out sort of mangled in email, and apparently has funny characters in it because I couldn't copy/paste and modify -- I had to retype. But this runs fine in psql for me: (Printing the hundreds of x's omitted from the post, but that looks OK to me, too.) test=# create table txt (val text); CREATE TABLE test=# insert into txt values (repeat('x', 4500)); INSERT 0 1 test=# insert into txt values (repeat('x', 4685)); INSERT 0 1 test=# select char_length(val), val is null, (val ~ 'x') from txt; char_length | ?column? | ?column? -------------+----------+---------- 4500 | f | t 4685 | f | t (2 rows) -Kevin