Please rename them. I remember "korr" being very confusing when I
first started working on mysql.

On Mon, Jan 5, 2009 at 1:20 PM, Jay Pipes <[email protected]> wrote:
> The file drizzled/korr.h contains macros which read and write raw data in a
> cross-architecture-compatible way.  Something has always bothered me about
> these macros: their names.
>
> At the top of korr.h, we find the following comment:
>
> /*
>  * Define-functions for reading and storing in
>  * machine independent format
>  * (low byte first)
>  *
>  * No one seems to know what "korr" means in this context.
>  * A global search and replace would be fine if someone
>  * can come up with a better description.
>  */
>
> I say it's time to do this.  "korr" just doesn't seem to be either
> descriptive or, well, in the English language.
>
> In this file, we have the following macros:
>
> sint2korr(A)
> sint3korr(A)
> sint4korr(A)
> sint8korr(A)
> uint2korr(A)
> uint3korr(A)
> uint4korr(A)
> uint5korr(A)
> uint6korr(A)
> uint8korr(A)
>
> in the above, A is a pointer which has been allocated on the heap.
> Typically, the pointer A is the Field::ptr member variable, which is usually
> allocated with the amount of storage for X number of bytes, where X is the
> storage needed for the column type.
>
> int2store(T, A)
> int3store(T, A)
> int4store(T, A)
> int5store(T, A)
> int6store(T, A)
> int8store(T, A)
>
> in the above, T is a pointer to store the value of A in a portable fashion.
>  Essentially, these are the counterparts for the "korr" functions.
>
> doubleget()
> doublestore()
> float4get()
> float8get()
> float4store()
> floatget()
> floatstore()
>
> The above are a little more aptly-named macros for doing similar things with
> doubles and floats, though they are really not used except for a couple
> specific places in the MyISAM and MEMORY storage engines.  It would be nice
> if someone verified their behaviour, as I am quite sure these macros haven't
> been looked at in 10 years or so...
>
> int4net()
>
> This isn't used anywhere and I'm deleting it.  Not surprising, considering
> it seems to do nothing more than the ntohl() function
>
> ushortget()
>
> Dead code.  Not used anywhere.
>
> shortget()
> ulongget()
> longget()
> shortstore()
> longstore()
>
> Mostly just refer to sint2korr() and uint2korr() but might be useful?
>
> int64_tget()
> int64_tstore()
>
> These are defined the same regardless of architecture as:
>
> #define int64_tget(V, M)   memcpy(&V, (M), sizeof(uint64_t))
> #define int64_tstore(T, V) memcpy((T), &V, sizeof(uint64_t))
>
> I am completely unsure why these were added and the int8store() and
> int8korr() macros not used?  In addition, the definitions of uint8korr() and
> int8store() are not the same as the definitions of int64_tget() and
> int64_tstore(), though I am not sure why this is the case...
>
> Anybody have votes or opinions on the following questions:
>
> 1) Should we rename "korr" to something more meaningful?  If so, what?
> change "korr" to "get"? or "read"?
>
> 2) Are these macros still needed?  Are they premature optimization?  Are
> they available in an open source library already?
>
> 3) Can we safely change all references of unsigned char to uint8_t? This
> would blend nicely with eday's new protocol library...
>
> Thanks in advance for your thoughts.
>
> Cheers,
>
> Jay
>
> _______________________________________________
> Mailing list: https://launchpad.net/~drizzle-discuss
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~drizzle-discuss
> More help   : https://help.launchpad.net/ListHelp
>



-- 
Eric Bergen
[email protected]
http://www.provenscaling.com

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to