C trigger problem : conversion of CString to Datum

From: Guy Deleeuw <G(dot)De_Leeuw(at)eurofer(dot)be>
To: pgsql-admin(at)postgresql(dot)org
Subject: C trigger problem : conversion of CString to Datum
Date: 2010-02-20 15:05:16
Message-ID: 4B7FFA2C.3030001@eurofer.be
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hello,

I cannot convert properly a cstring to a Datum :
Here my code :
int attColNumber;
Datum new_barcode;
bool isnull = 0;
char barcode[14];

elog(INFO, "gd_trigfunc_before_article_insert() : bar_code = %s",
barcode);
attColNumber = COL_BARCODE;
new_barcode = CStringGetDatum(barcode);
workTuple = SPI_modifytuple(trigdata->tg_relation,
trigdata->tg_trigtuple, 1, &attColNumber, &new_barcode, &isnull);

the result :

# INSERT INTO t_articles VALUES (4001, 1, '065', 'White', NULL, 'XS', null);
INFO: gd_trigfunc_before_article_insert() : bar_code = 5492850000012
INSERT 0 1
# select * from t_articles WHERE k_id > 2000;
k_id | product_id | color_id | color_desc | height | size | bar_code
------+------------+----------+------------+--------+------+--------------
4001 | 1 | 065 | White | | XS | 492850000012
(1 ligne)

Missing the firs digit of the barcode.

Thanks in advance for your help
Regards
Guy

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Tom Lane 2010-02-20 15:45:31 Re: C trigger problem : conversion of CString to Datum
Previous Message Kevin Kempter 2010-02-19 16:16:36 Re: Using Postgresql Replication