freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
Re: [freetds] How to apply Bulk Copy hints when using ctlib ?
- From: jklowden AT schemamania.org
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: Re: [freetds] How to apply Bulk Copy hints when using ctlib ?
- Date: Fri, 4 Mar 2011 11:41:59 -0500
On Thu, Mar 03, 2011 at 05:45:39PM +0200, Mark Songhurst wrote:
> You wrote:
>
> > As long as blkdesc->bcpinfo.hint points to a valid string
>
> I'm using 0.82 of FreeTDS and my BLKDESC structure boils down to this,
> in ctlib.h:
>
> struct _cs_blkdesc
> {
> CS_CONNECTION *con;
> CS_CHAR *tablename;
> CS_CHAR *insert_stmt;
> CS_INT direction;
> CS_INT identity_insert_on;
> CS_INT bind_count;
> CS_INT xfer_init;
> CS_INT var_cols;
> TDSRESULTINFO *bindinfo;
> };
>
> I don't have a bcpinfo member.
> Please can you tell me if you are referring to a newer version of
> FreeTDS, or perhaps I have misunderstood your suggestion?
You understood correctly; I had just checked CVS HEAD. :-/
It will be easier to change a recent snapshot, because Frediano unified the
bcp structures. If you want to modify 0.82, you'll have to add your own hint
member.
In case it matters, we're actively working on a new release Real Soon Now. I
would be happy to incorporate your patch if you want to contribute one.
In ctlib.h we currently have:
struct _cs_blkdesc
{
CS_CONNECTION *con;
TDSBCPINFO bcpinfo;
};
and in tds.h:
typedef struct tds_bcpinfo
{
const char *hint;
void *parent;
TDS_CHAR *tablename;
TDS_CHAR *insert_stmt;
TDS_INT direction;
TDS_INT identity_insert_on;
TDS_INT xfer_init;
TDS_INT var_cols;
TDS_INT bind_count;
TDSRESULTINFO *bindinfo;
} TDSBCPINFO;
This is used in src/tds/bulk.c::tds_bcp_start_insert_stmt()
if (bcpinfo->hint) {
if (asprintf(&hint, " with (%s)", bcpinfo->hint) < 0)
hint = NULL;
} else {
hint = strdup("");
}
As you can see, it's important that the hint text be carefully controlled,
which
is why it's checked against a static list in db-lib.
HTH.
--jkl
-
[freetds] How to apply Bulk Copy hints when using ctlib ?,
Mark Songhurst, 03/03/2011
-
Re: [freetds] How to apply Bulk Copy hints when using ctlib ?,
jklowden, 03/03/2011
- Re: [freetds] How to apply Bulk Copy hints when using ctlib ?, Mark Songhurst, 03/03/2011
-
Re: [freetds] How to apply Bulk Copy hints when using ctlib ?,
Mark Songhurst, 03/03/2011
- Re: [freetds] How to apply Bulk Copy hints when using ctlib ?, jklowden, 03/04/2011
-
Re: [freetds] How to apply Bulk Copy hints when using ctlib ?,
jklowden, 03/03/2011
Archive powered by MHonArc 2.6.24.