[ic] Options table with Postgresql & 4.9.7

Kevin Old interchange-users@icdevgroup.org
Fri Apr 4 15:34:00 2003


On Fri, 2003-04-04 at 14:21, Brian Kosick wrote:
> Kevin Old wrote:
> 
> >Hello everyone,
> >
> >I'm playing around with 4.9.7 and am getting the following error when
> >just trying to setup a demo store with Postgresql 7.2.1.
> >Configuring catalog foundationdb...Using PostgreSQL,
> >DSN=dbi:Pg:dbname=foundationdb...NOTICE:  CREATE TABLE / PRIMARY KEY
> >will create implicit index 'options_pkey' for table 'options'
> >table options created: create table options ( 
> >code varchar(64) primary key NOT NULL,
> >sku varchar(64),
> >o_group varchar(20),
> >o_sort varchar(16),
> >o_default varchar(64),
> >o_label text,
> >o_value text,
> >o_widget text,
> >o_height int,
> >o_width int,
> >description text,
> >price varchar(20),
> >wholesale varchar(20),
> >display_type text
> >)
> >
> >DBI: Post creation query 'CREATE  INDEX options_o_enable ON options
> >(o_enable)' failed: ERROR:  DefineIndex: attribute "o_enable" not found
> >DBI: Post creation query 'CREATE  INDEX options_o_master ON options
> >(o_master)' failed: ERROR:  DefineIndex: attribute "o_master" not found
> >table 'options' failed: options import failed: ERROR:  value too long
> >for type character varying(20)
> >
> >I have Postgres working with 4.9.6 and I even copied over the
> >options.pgsql file from my 4.9.6 dist, did a diff and tried to build the
> >table.
> >
> >What's happening is that the sql statement doesn't include the o_enable
> >and o_master fields.....even though they're explicitly defined in in the
> >options.pgsql file.
> >
> >Any ideas?
> >
> >Kevin
> >
> >  
> >
> The problem is not interchange, but with postgres.  as of 7.2 the 
> default behavior of postgres has changed.  From truncating text when it 
> is too long to fit in the field to rejecting the transaction.  The 
> solution is to bump up the VARCHAR length in the <tablename>.pgsql 
> file.  This has all ready been documented on the list before.
> 

Brian,

Well, that is somewhat true.  I have fixed some of those errors in other
tables, but this problem, seems to be that IC never puts them in the
table definition.....have a look and the create table script above and
you'll see that o_enable or o_master aren't in there.  They are
explicitly defined in the options.pgsql file.  Here's a dump of my 4.9.6
options table running on the same installation of Postgres (7.2.1):


CREATE TABLE "options" (
   "code" varchar(64) NOT NULL,
   "o_master" varchar(64) DEFAULT '' NOT NULL,
   "sku" varchar(64) DEFAULT '' NOT NULL,
   "o_group" varchar(20) DEFAULT '' NOT NULL,
   "o_sort" varchar(16) DEFAULT '' NOT NULL,
   "phantom" varchar(1),
   "o_enable" varchar(1) DEFAULT '' NOT NULL,
   "o_matrix" varchar(1),
   "o_modular" varchar(1),
   "o_default" varchar(64),
   "o_label" text,
   "o_value" text,
   "o_widget" text,
   "o_footer" text,
   "o_header" text,
   "o_height" int4,
   "o_width" int4,
   "description" text,
   "price" varchar(20),
   "wholesale" varchar(20),
   "differential" varchar(20),
   "weight" varchar(20),
   "volume" varchar(20),
   "mv_shipmode" varchar(128),
   "o_exclude" text,
   "o_include" text,
   CONSTRAINT "options_pkey" PRIMARY KEY ("code")
);
CREATE  INDEX "options_code" ON "options" ("code");
CREATE  INDEX "options_o_enable" ON "options" ("o_enable");
CREATE  INDEX "options_o_group" ON "options" ("o_group");
CREATE  INDEX "options_o_master" ON "options" ("o_master");
CREATE  INDEX "options_o_sort" ON "options" ("o_sort");
CREATE  INDEX "options_sku" ON "options" ("sku");
GRANT ALL ON "options" TO "interch";

I can manually create this table and everything works fine in Postgres,
and the table is created.  But, even though the table is there, IC throws up a
notice during the startup a seems to try and create the table again.  Is there 
a way I can disable this so that it starts cleanly?

Thanks,
Kevin
-- 
Kevin Old <kold@carolina.rr.com>