Skip to Content.
Sympa Menu

freetds - Re: [freetds] cast to void?

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "James K. Lowden" <jklowden AT freetds.org>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] cast to void?
  • Date: Tue, 4 Dec 2007 11:38:32 -0500

HI Freddy,

ZIGLIO, Frediano, VF-IT wrote:
> > Next time, I think I'll compile first and post second.
> >
>
> Personally I like the distinction made in C++ that use
> const_cast instead of C style casts...

Me too.

> I also don't understand why we need to allocate some memory in order to
> return NULLs... dbgetnull is called only by _set_null_value. Perhaps
> _set_null_value should do all the job without allocation stuff?? But...
> bindval should not be always initialized?? to_free is used only to pass
> data from dbgetnull to _set_null_value, perhaps merging dbgetnull and
> _set_null_value we can remove this field.

Yes, I think we should merge them. We allocate the memory only to copy it
to the rowbuffer. Not very smart. We can write blanks/zeros to the
rowbuffer directly instead.

The code evolved as I understood what to do. It's not quite done. ;-)

> I noted also that we defined a new NULLREP structure with a field
> (capability) that we don't use at all.

We can remove it, now that we we know it's not needed.

> Why we need a initialize_default_null_representations if
> default_null_representations can be initialized statically (and be
> const)?

Only because it's hard to get right statically. The array is 19 long with
some gaps. I didn't want to accidentally set the default null
representation of, say, TINYBIND to be the one that belongs to
DATETIMEBIND.

> Is correct dbsetnull for VARYBINBIND/VARYCHARBIND?? Perhaps we should
> copy the entire structure??

I don't know.

> I think we don't even support these stranges types...

Not very well. It's not something I have much use for personally. Every
time I look into it, I get lost in the rowbuffer code and stop.

One of these days, I'm going to write bcp_moretext() -- which will mean
yet another slash through the bcp code. bcp 'IN' should be written in
terms of bcp_bind() and bcp_moretext(), and bcp 'OUT' should use dbbind()
and dbreadtext().

To get that working, VARYBINBIND will have to work. All in good time.

Regards,

--jkl





Archive powered by MHonArc 2.6.24.

Top of Page