On 18/09/2012 04:39, Claudio Valderrama C. wrote: >> -----Original Message----- >> From: Carlos H. Cantu [mailto:lis...@warmboot.com.br] >> Sent: Lunes, 17 de Septiembre de 2012 9:09 >> >> If it is too much difficult to fix this behavior, I would suggest to >> make the ALTER fail too, to avoid bad surprises when metadata is >> extracted and run, bringing more consistency between the two >> operations. > After reading all the letters, I see that's only a problem of the extraction > routines, not the engine. > > It's not a extract problem. The problem is a subset of a big one (the big one is that Firebird DDL is very broken for anything but basic).
First, a fix would need to create computed fields after all fields. Then you see it while fix the reported problem, it will not fix the problem if a computed field depends on another one. So then you need to make a dependency graph to check what need to be first created. But it's not only that. Since Firebird generally does not allow broken (invalid) metadata, you'd need to let things temporary broken until a commit, for user's flexibility. It does not means, however, that anything must be validated only at commit. If you add fields with the same name, the validation must not be deferred, cause otherwise subsequent commands would not understand a table with more than one field with the same name. So you would think DFW must be extended. Wrong! DFW in the way it is is the least reliable DDL phase. The problem is big. Not on code, but on thinking about it. The solution, I guess, would delete more code than create. Adriano ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel