Row too long (-2000)

"Dusan Kolesar" <[email protected]> Tue, 24 Jul 2007 11:27:43 +0200
Newsgroups gmane.comp.db.maxdb
Message-ID <op.tvypwhh2przcvo@dusanxp>
Hello
I'm using MaxDb 7.6.0.34 on WinXp SP2.

My DB schema is :
CREATE TABLE logTb
(
   "ID"                Integer              NOT NULL    DEFAULT SERIAL (=
1),
   "TSTAMP"            Timestamp            NOT NULL    DEFAULT TIMESTAM=
P,
   "TYPE"              Integer              NOT NULL    DEFAULT 1,
   "SENDER_ADDRESS"    Varchar (255) ASCII  NOT NULL    DEFAULT '',
   "RECEIVER_ADDRESS"  Varchar (255) ASCII  NOT NULL    DEFAULT '',
   PRIMARY KEY ("ID")
)
//
CREATE TABLE inTb
(
   "ID"               Integer              NOT NULL  DEFAULT SERIAL (1),=

   "TSTAMP"           Timestamp            NOT NULL  DEFAULT TIMESTAMP,
   "LOGTB_ID"         Integer              NOT NULL  DEFAULT -1,
   "DATA"             Varchar (4096) BYTE  NOT NULL,
   PRIMARY KEY ("ID"),
   FOREIGN KEY FK_LOGTB_ID ("LOGTB_ID") REFERENCES
     logTb (Id) ON DELETE  SET DEFAULT
)
//
CREATE TABLE outTb
(
   "ID"               Integer              NOT NULL  DEFAULT SERIAL (1),=

   "TSTAMP"           Timestamp            NOT NULL  DEFAULT TIMESTAMP,
   "LOGTB_ID"         Integer              NOT NULL  DEFAULT -1,
   "DATA"             Varchar (4096) BYTE  NOT NULL,
   PRIMARY KEY ("ID"),
   FOREIGN KEY FK_LOGTB_ID ("LOGTB_ID") REFERENCES
     logTb (Id) ON DELETE  SET DEFAULT
)

when I do:

select
   logTb.Id,
   Value (inTb.Data, outTb.Data) as DataMsg
 from logTb
   left join inTb on logTb.Id =3D inTb.LogTb_Id
   left join outTb on logTb.Id =3D outTb.LogTb_Id

Syntax error or access violation;-2000 POS(8214) Row too long

It seems that sql parser sums length of all columns listed in the  =

statement.
(Integer + Varchar (4096) BYTE + Varchar (4096) BYTE) > 8088 bytes (max.=
  =

length of a table row)
But when I use Value (Col1, Col2), then maximal length of this column is=
  =

max of Col1 and Col2 length.

The same is when I do:

select
   logTb.Id,
   Value (Substr (inTb.Data, 1, 10), Substr (outTb.Data, 1, 10)) as Data=
Msg
 from logTb
   left join inTb on logTb.Id =3D inTb.LogTb_Id
   left join outTb on logTb.Id =3D outTb.LogTb_Id

Length of Substr (Column, 1, n) is n but not Length of Column type.

Is there any way how to restrict length of output columns ???


Thank you very much for support.
   Regards, Dusan

-- =

Dusan Kolesar
Helsinska 19
040 13  Kosice
Slovakia
e-mail primary : [email protected]
e-mail alternative : [email protected]
ICQ# : 160507424

-- 
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[email protected]