C trigger problem : conversion of CString to Datum - Mailing list pgsql-admin

From Guy Deleeuw
Subject C trigger problem : conversion of CString to Datum
Date
Msg-id 4B7FFA2C.3030001@eurofer.be
Whole thread Raw
Responses Re: C trigger problem : conversion of CString to Datum
List 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

pgsql-admin by date:

Previous
From: Kevin Kempter
Date:
Subject: Re: Using Postgresql Replication
Next
From: Tom Lane
Date:
Subject: Re: C trigger problem : conversion of CString to Datum