I am not sure if CL is best example - it has no NULL SQL logic. Current issue is introduced by design, where empty array is similar to NULL (but not same) - what is on half way to Oracle varchar behave. But it is not consistent with other data types in postgres.
Regards Pavel 2013/3/31 Dimitri Fontaine <dimi...@2ndquadrant.fr> > Pavel Stehule <pavel.steh...@gmail.com> writes: > > I understand, but I don't agree. W have to fix impractical design of > > arrays early. A ARRAY is 1st class - so there is not possible to use > > varchar2 trick. > > > > if we don't would to use GUC, what do you think about compatible > > extension? We can overload a system functions behave. This can solve a > > problem with updates and migrations. > > In Common Lisp arrays are multi-dimensional too, and the 1-D arrays have > a specific name, they call them vectors. If you create an array with > only 1 dimension, then it's a vector. All the array API works the same > on vectors. > > I guess we could specialize some of our API on vectors and avoid having > to tell the system which dimension we are interested into when using > them rather than multi-dimensional arrays. > > Now from the internals perspective I also guess we don't want to be > generating so many more types so maybe we would need some tricks to know > how to promote a 1-D array into a vector automatically? > > -- > Dimitri Fontaine > http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support >