Patrick Galbraith wrote:
> Monty,
>
> Ok, this is fine... lots of work it was, but I have a better idea of
> what is involved. I see to that you changed some things to being
> pointers, etc.
/me hangs head in shame.
> Let's just split this up good - I can do things that are concise with my
> time restrictions, like client programs, or a specific piece of code.
> I'll make sure to indicate on the project page what my pieces are.
Agree. I also think if we actually don't do non-related things at the
same time, it'll be easier to merge with each other... :)
> Also, should we rip anything to do with embedded out?
Yes.
Monty
>
> Monty Taylor wrote:
>> Yes. That should be DRIZZLE *...
>> Ok. I think I have officially drug this branch down the rathole. I'm
>> terribly sorry for wrecking work and delaying DBD::drizzle...
>>
>> Jay just sent me an email about his work in the tree today, which came
>> to the sensible conclusion that the changes I was committing were too
>> interwoven to be able to backtrack through them successfully... and he's
>> totally right.
>>
>> Jay is going to look at starting from scratch from trunk and starting to
>> apply the patches one bit at a time. (I think I know where it broke, but
>> it's all too much atm)
>>
>> I think we should/can divvy this up a bit, so we don't (and by we, this
>> week I seem to mean me) break each other's work.
>>
>> SO, I propose these related but unrelated tasks.
>>
>> TASK ONE: Rename mysql to drizzle OR to something more generic where it
>> will touch storage engines. This includes:
>>
>> - Replacing use of the MYSQL_TYPE_* constants to FIELD_*
>> - Renaming MYSQL_* types in drizzle.h to DRIZZLE_*
>> - Renaming MYSQL* defines to DRIZZLE*
>> - Changing mysql_init() to drizzle_create()
>> - Moving my_thread_init(), my_net_init(), etc. into drizzle_create()
>> - Rename mysql_real_* to just drizzle_*
>>
>> (I think I can re-do the first four bullets above pretty quickly now
>> that I know where it's all hanging together. I'd like someone else to
>> look at bullet 5 - I think it needs a different set of eyes.)
>>
>> TASK TWO: Remove the mysys/mystrings depends from libdrizzle. The main
>> depends are charsets, my_malloc/my_free, some lame string manipulation
>> functions (and one nice one), bad header file organization and errors.
>> (Could conceivably be done in parallel... but probably should wait for
>> the above to be done and merged)
>>
>> - Replacing my_malloc/my_free with normal malloc/free
>> - Removing use of non-standard string functions
>> - Removing charset references from libdrizzle (make the lib send the
>> bytes the programmer sends)
>> - Moving some stuff around in headers (I think I did this mostly
>> right, so most of this can be copied verbatim)
>> - Removing use of MEM_ROOT in libdrizzle. This most affects
>> MYSQL_FIELD and MYSQL_ROWS. While we're at it, we curse the
>> MYSQL_ROWS implementation. (BTW Stewart - the first time I did
>> this, I was yearning for talloc...)
>>
>>
>> TASK THREE: Figuring out what to do with the ER() macros and
>> client_errors[] (NOT RELATED TO THE ABOVE... CAN BE PARALLEL)
>> (I didn't do this right the first time at all)
>> This whole thing is a mess, as there are global static arrays that are
>> shared between client and server, and we generate these things with
>> comp_err. I'd say it's a later design issue to be solved, but it's
>> keeping libdrizzle tied to mysys... and it's a spiderweb anyway.
>>
>> Once all of that is done and all still compiles and is merged, _then_ we
>> can tackle (instead of doing it all in one fell swoop):
>>
>> - Removing references to deprecated things in client/
>>
>> - Password support functions
>> - Unix Domain Sockets
>> - Shared Memory
>> - Embedded Server
>> (but keeping the command line options as null-ops for now)
>>
>> - Removing mysys/mystrings from client/
>>
>>
>>
>> - moving mysqlbinlog to a binlog dir, which will eventually also house
>> binlong related files from server/ for a libbinlog ... but that's a
>> whole other thing.
>>
>> Hopefully if we do it right, dormando and krow can continue working on
>> the blocking/non-blocking IO issue, and possibly krow's interest in
>> removing vio...
>>
>> At this point, libdrizzle can become a source package with no external
>> depends. and we can:
>>
>> - Rearrange/split up header files and code for libdrizzle - sort of like
>> how libmemcached is - file for DRIZZLE_ROW, file for DRIZZLE_FIELD, etc..
>>
>> Thoughts/comments? Bricks to the head? If this sounds good to you guys,
>> I'll transfer it to the blueprint...
>>
>> Monty
>>
>> Patrick Galbraith wrote:
>>
>>> Monty,
>>>
>>> Now I get this error:
>>>
>>> o -MD -MP -MF ".deps/linktest.Tpo" -c -o linktest.o linktest.c; \
>>> then mv -f ".deps/linktest.Tpo" ".deps/linktest.Po"; else rm -f
>>> ".deps/linktest.Tpo"; exit 1; fi
>>> linktest.c:2:25: error: mysql/mysql.h: No such file or directory
>>> linktest.c: In function ‘main’:
>>> linktest.c:13: error: ‘MYSQL’ undeclared (first use in this function)
>>> linktest.c:13: error: (Each undeclared identifier is reported only once
>>> linktest.c:13: error: for each function it appears in.)
>>> linktest.c:13: error: expected ‘;’ before ‘my’
>>> linktest.c:15: error: ‘my’ undeclared (first use in this function)
>>> make[1]: *** [linktest.o] Error 1
>>>
>>> So, linktest.c has:
>>>
>>> nt main(int argc, char** argv) {
>>>
>>> (void)argc;
>>> (void)argv;
>>>
>>> MYSQL my;
>>>
>>> ...
>>>
>>> Shouldn't it be DRIZZLE my ?
>>>
>>> Monty Taylor wrote:
>>>
>>>> Patrick Galbraith wrote:
>>>>
>>>>
>>>>> Monty Taylor wrote:
>>>>>
>>>>>> I stuck a file called "linktest.c" into the libdrizzle dir to test
>>>>>> for
>>>>>> missing symbols in libdrizzle while we were removing depends. Sounds
>>>>>> like it got removed.
>>>>>>
>>>>>> Patrick Galbraith wrote:
>>>>>>
>>>>>>> I have all the client calls renamed to drizzle_xxx and when
>>>>>>> compiling, get this error that doesn't tell me much:
>>>>>>>
>>>>>>> creating libdrizzle.la
>>>>>>> (cd .libs && rm -f libdrizzle.la && ln -s ../libdrizzle.la
>>>>>>> libdrizzle.la)
>>>>>>> make[1]: *** No rule to make target `linktest.o', needed by
>>>>>>> `linktest'. Stop.
>>>>>>>
>>>>>>> That's the only error, everything else seems to go fine. Any
>>>>>>> thoughts? I could push this to a special tree if anyone wants to
>>>>>>> look
>>>>>>> at it.
>>>>>>>
>>>>>>> --Patrick
>>>>>>>
>>>>>>>
>>>>> Monty,
>>>>>
>>>>> Could you please re-commit/push ? ;)
>>>>>
>>>> Yes! Committing-pushing right now!
>>>>
>>>> Monty
>>>>
>>>
>
>
_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help : https://help.launchpad.net/ListHelp