WITH RECURSIVE patches 0818

Started by Tatsuo Ishiiover 17 years ago7 messages
#1Tatsuo Ishii
ishii@postgresql.org
2 attachment(s)

Hi,

Here is the latest WITH RECURSIVE patches against CVS HEAD. Besides
syncing to CVS HEAD, followings are main differences from previous
one:

1) Enhance sgml docs. Patches contributed by Jeff Davis.

2) Fix bug with plans using HashAggregate. Hash tables should be
recreated if recursive scan is used. Otherwise goes into infinite
recursion.

Also I include an implementation doc slightly enhanced previous one.
--
Tatsuo Ishii
SRA OSS, Inc. Japan

Attachments:

recursive_query.patch.gzapplication/octet-streamDownload
implementation.txttext/plain; charset=us-asciiDownload
#2David Fetter
david@fetter.org
In reply to: Tatsuo Ishii (#1)
Re: [HACKERS] WITH RECURSIVE patches 0818

On Mon, Aug 18, 2008 at 04:38:52PM +0900, Tatsuo Ishii wrote:

Hi,

Here is the latest WITH RECURSIVE patches against CVS HEAD. Besides
syncing to CVS HEAD, followings are main differences from previous
one:

Thanks for the new patch :)

I think I may have found another bug:

WITH RECURSIVE t(i,j) AS (
VALUES (1,2)
UNION ALL
SELECT t2.i, t.j
FROM (
SELECT 2 AS i
UNION ALL /* Wrongly getting detected, I think */
SELECT 3 AS i
) AS t2
JOIN
t
ON (t2.i = t.i)
)
SELECT * FROM t;
ERROR: attribute number 2 exceeds number of columns 1

Is there some way to ensure that in the case of WITH RECURSIVE, the
query to the right of UNION ALL follows only the SQL:2008 rules about
not having outer JOINs, etc. in it, but otherwise make it opaque to
the error-checking code?

I know I didn't explain that well, but the above SQL should work and
the error appears to stem from the parser's looking at the innermost
UNION ALL instead of the outermost.

Cheers,
David.
--
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: david.fetter@gmail.com

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate

#3Tatsuo Ishii
ishii@postgresql.org
In reply to: David Fetter (#2)
Re: [HACKERS] WITH RECURSIVE patches 0818

I think I may have found another bug:

WITH RECURSIVE t(i,j) AS (
VALUES (1,2)
UNION ALL
SELECT t2.i, t.j
FROM (
SELECT 2 AS i
UNION ALL /* Wrongly getting detected, I think */
SELECT 3 AS i
) AS t2
JOIN
t
ON (t2.i = t.i)
)
SELECT * FROM t;
ERROR: attribute number 2 exceeds number of columns 1

Is there some way to ensure that in the case of WITH RECURSIVE, the
query to the right of UNION ALL follows only the SQL:2008 rules about
not having outer JOINs, etc. in it, but otherwise make it opaque to
the error-checking code?

I know I didn't explain that well, but the above SQL should work and
the error appears to stem from the parser's looking at the innermost
UNION ALL instead of the outermost.

Thanks for the report. I will look into this.
--
Tatsuo Ishii
SRA OSS, Inc. Japan

#4Tatsuo Ishii
ishii@postgresql.org
In reply to: David Fetter (#2)
2 attachment(s)
Re: [HACKERS] WITH RECURSIVE patches 0818

I think I may have found another bug:

WITH RECURSIVE t(i,j) AS (
VALUES (1,2)
UNION ALL
SELECT t2.i, t.j
FROM (
SELECT 2 AS i
UNION ALL /* Wrongly getting detected, I think */
SELECT 3 AS i
) AS t2
JOIN
t
ON (t2.i = t.i)
)
SELECT * FROM t;
ERROR: attribute number 2 exceeds number of columns 1

Is there some way to ensure that in the case of WITH RECURSIVE, the
query to the right of UNION ALL follows only the SQL:2008 rules about
not having outer JOINs, etc. in it, but otherwise make it opaque to
the error-checking code?

I know I didn't explain that well, but the above SQL should work and
the error appears to stem from the parser's looking at the innermost
UNION ALL instead of the outermost.

Here is new patches fixing the bug you pointed out (patches was
created by Yoshiyuki). Also I added your SQL to the regression test,
and now the patches is against CVS HEAD. For your convenience I also
include patches against the previous version.
--
Tatsuo Ishii
SRA OSS, Inc. Japan

Attachments:

recursive_query.patch.gzapplication/octet-streamDownload
��I�Hrecursive_query.patch�<ks�8���_�xv3�E����Wy'Q�cglgsW���� �	EjH��wf��_w�A���gw��R3�6��F�poo�-��o��8�G!�?�{�!��G������;�z�W�7�v���}���wju��U����j�*P�N<���6({U���v�}�o4s(����5�V���G���_�'������`����=��#�|���>~\�a/O_�������Xx��;7g#�����'t�<����W7�
[���h��<f-V��>�O0������k������?�������.�Yi���"�Q���!�L�����!�Wl���e�X�C�3>)�$5�������M�`>tc>_��"Q7�V+u�n������A��(M��o��������*�A(�1��\'�	b�R�o9����%
A������Z��w�)pt[�l����Z����������f\�-�<y��`6�r��"���_
�_of����\��9�����������
����Z�S)�J����LU�h?q$���g�M���V��M,<X�n��eG�H����	
����0w�|=XU;��c�����a>�b��|�#��W������:�q���7���,#�u9�";�	�]�8K�2���?s</���`���E>r'w����
���3'f#�g7��y����;�2d��-Bw�4��w�zN��g�Wi�Ng1���'��n]��&�����bZB���F�����E,����,����`��1+���	q.0= ���'��mhL�k�lw#M��bn���x$�HP��bx���\�V���^�p�s��`�K,B(~��	�� ��"���EV� �%���9�)$�Q0_x�0Y����p~?G��5�@��V}u=Ob�D���{w�����������������������������K\{,�� �3�����y5���r+�0�'��~�-�_�0�.Y��w-������f�Z���{�/f/���wd�a0��:�,QJ'M������o
�E3T\� �a}�25�( ����TD\
����Ay��(X����ex����W��1�?��b:9����D/����x����_
�l��|yz�nF��Qi"����|	Uo����T��*���?��uB�imu�5���l���v[����*k���������4��(���,���E���W5
Cw����IQ�����'G	KC����0X3��O�4l��r�]��c��U����.1t_�.+k�Hbo�	�����o�����yW��`��/�������<X�.��}�| ���C:z���If��|�!d�����Iw@�A����p<��B!S�iM�G��/��w/C�s���I��E<�1o�kl�����G�;�\�9@EZ�f����G-�,=�����V\-���H<�p�K���L�2����Zxa��|xszy�x�~F=�Y�-Kc���5E#������_7��P�a5E	|�#0 �D���@Nj���\��4?��W����2��M���#Z�t�
�L7�����1��h����k����f�f����{[���E��� m��9�V��j5��5t����9�H��'��������h�=�7!w� 7u�K����Sk�Q�����1�/n<w'�A����E�k7�V�e� �Vz������<�� ;�x������r��p����������R����-��m�V��I��mt�nR�����g�c0����[������(n)�5L���T*a�+3PW�\=��Bw��Y�,��\:��_�x�~�w/��a<�pXkPY����Q�8$�_��Ao�����X��n�N�B�����#$co_�
����b�������P[���Z�F�>��L���!���t�`��$(Eqh�]�����9�����e��Pg����X�������90�N��[=;o��o���m�dq.��\h�u'�kD6�C��7��%���1���r��w_�VPR����0��7z�]o6���nBS��^N� p�Mp:QYr�*&��	Qj1=�2)�P{���Tr������W���t���A������'Dgz-0��GZ��������Q�Q{X���!dGL�~W*r
�R_�+ur%@�X�tl�`�iL������5�����gg�SNDFKE�z#G��s&��9F��5��@f�����A�����'�����f���~�{O_�
��]����U:;E~jwZ����^��;T�����h}�D�<l�"��vR~N=�p�%���<5��(��`!!��1p]�,�|%_e�\��B!�
B��wA����e�r��]��u,�>WB+� �
�M��X>�(q����h���"dyH~�����i[������7��&o�)��d��~����~��o<�������4�V���G ���#o	�eW�R��� �<���PeP�=[@IEZ7�T�u J���^D������1�x�aG�M���	e����TJB+���a2������A�'�8�:���/�8��"7�yV���������pF�m�4BN��3�9KFC��m������"�5Z]0�F��hCC�Xlo���� Z)�m���0����{j�f���5���I�����F\]��]�����������`���o-�o�����k�};?[Y�P)!8Z9iY���%/�G���Zv��A��V����G�B�����z�.F(?�Rm��Y��o������9��w�-���x����{����`�m����h���Ta
:����L��|�4S!M�{LF��@�2��X���e�t�������ek����������6�Q�Y�u�QO��j�������v|�-
PV�{;�������E�"��_�M��=�4�����NAT�K�Y����LG�)�E
������V?����s�7�;z�4��rn�Q��$*3q�v�f���e�7y����}�z���;mXFm��F�
�v��*f�}&R�O\yA)��/�s�[�|��Y�p�T5�f������m�����s�B������gL�j�54���V��F�����;���i�3���?~T�!q>�^d�R6��E.��vr�N��������p.��f�|���a]\��'��Yzjb��i��i�H��E��rA��H<v����/�0�j2r �l�����O���������������K�H����<�`���HL��K�tJ^�,M6��E���B?��U�����j3'JN ���Uc���9x����`����E�2q����3�cC��it���6C:
�O��`����'��0
�4���9$&�`_,�a�w
�>��F3���,��#j���e�P���;}�1��*?`�8��n�.x|<j:��D9�5B�
�TG��{|�!��f�wH��������.8	����X��'�_��������B���*�xvn��?��
�=�p�
���&�'�4�m����B�xBa��Q��M��s6q����nc;�c>nE�o��hb=��-�(tp����/H|����,�kScI�<�24Y�����n(6}��}��[��#��v�V�X�W��n�����JB�gN����Q]��jF!�K�~�b�N�L"����v���C�4z�I�u{���
2xm�2���pJ�� ���!V7�m����M��-����n���&4$E|����t:�0ip��>V�����?���`�����5C6J�8h>���K�����E�xG��q&A<zZRA
KB��'��Q����"�A!$�/�G���2,�`4�T�AZ%a\��-x�2�c�|O�*D�"[�l4�������a��FC*��*����x<�9�����B�����"�D�G�S6FS�C4
�� �M��;�D��M�j��P:4���w@g4��a�i#��f�$�5�E���.L�8\$�S��f�j���f�j%�,�_g�h�a��9����`��kU��� ,�����.��2O6F���[�b:����8��'s���]��PC�������]��I���0\����$�8]����[&+����V�4�#
�)�9m��q}�0�o�l+p��0��A�7��V�{���|O��Z=��<�<s&���C�M��S#+�k1`���A�������m������#��-�lBrHb������<�r1R����8�D��=f�}�-��G������=�r�������2K���l�����S<`�1z>?���	�_n���(����"� s��x8�cJ,�I���:�-n�4�/�UF��+������x���T��]��n2Lx�N��R��~�o��L���s&��?/��F��#U��;_z����n�Hzc�����}�c�a����p`Va���j#�|o�m��"���	$�W;93�������g�p���.��T������9�`1�%��R�����u}JXc�?������P��+���/��IiX�N������h�>��)P�Y��_�����&��M��*����M�
����d7�z+�?�_���#j��2�>^o���?�xr�@��5�;H%�x-{,����������N�`DOC~��{�7 ��x�4X�R{����w��?M���3���"��@-B�u������������������_���?.��E���b�H>)>���B�����q���X����O��]�s���>F��"K=r�s,�i����uf*�|
�/�����Hm��>
)JA�����D����'��-^����tQ�Kd*�5x S$p�&z�"w�K.���]^z��1!�1J���5�?W}��� ��/\#�����I�914q�F�S�Ov(!�l	�&��~���H��&�%��O+aW�?0N^8
�`I�������H'�B�U���kG�!��RP�����(��K�5t�]���9cx������h���^<_��,�	w)kS�c����R7Y�d�B�1�cj[�����OjyZ��TH�[hBiu��i���9F�H�C��LR&���T�>����F��8�0*!rqM]�L���b�'�\��+l(wH��a��������J��h��R9d������\Y`�4�5�w�*������(�����7���R�)��w��mM�P��$�46_�7%)��7��Z�8��+���N�5x�U�JsI��R��:
9����:64��l&�|��$�o����3�,JV�P�bu���
A�8|��p���DMD��TT�5�}��_�����������Uc�AZ'M�>���P* =S���6c��|��,}�R�O��REO/����>���#����%Tt'.��4�#'�iMb�g�<O�AJH��*!�� q��-�� ��x�%Re�Y��}�(E����4��4���6���"L�S��1$��/G�����@}���b%�xB}���2K�:�&���n$��l�v�����C��Lq3�TB���P�"(Ad��yM0������\�6J+�m�*tRQ����%��$'����s���/!�k;'^Xh��F��i *<��]�.&���P�J�q��������7�5���U�6���5����4�9K/+��)�t���)-0{s���'-W1zZYR����r}�'^�F2��,�?��<[�u�2��y���?nH�O��:��|�[�<d����o��*Z2�����n�k��l-3����n4�H��(�����I�]�eh&��4]�cbta�R��6��89I����m�&�G+�]�d��S��8A����=:)���J���/��"�����B2K���[M���*�'R���I|�T}���|x~uvq}�Y��-\R�"�kI
���"������y��kU@}8d�������y����
C
��Wa0����
"5��P:T���!#�|,>�����i����8��E��]<`=���(X����v��w���P,4�3#cv����G?gz���8��� ������U��@��r����?;4*��� ��X��s�ZcWJ53z����M�HM�����(��Ek��a
���	�,�D��y6G��C
�Y�����4�P����$��k�)�Cv�?{k��h�V>��C�[B�w���=���+�B.�����|`��c4�s�UfJFw3�]��w}�B��E!�����S��=�d��i���Q��Oby�g6?V���Z��y�@a��U��>�2m[�
[�/Rj�:I�u�5=�I��1M�/��QF	Z���}��D+�||=+���vB��$���~����+��R c�AS��P;�c���q?���!����E<��|G7�w��u}+�q�Db_�cDPW-19V6��Fp�~}�A�7���R�q�r���d�[�_�l�U�)�@�Y!�o5��$+S���f���P�a��f�3t}g�����{<z~�Y^������0cb�`|O]�������,)/���@�g#"�SG�^0/u��7cS�����|����~w*�f�>/a� <���n>o|sc��;����5x�6�=,
�G2zP_�k��1���<�%��T�=���F#�u�5���
�<�k���Z�/���k�n��f��Y����?�-o-i���������d����B��6���X�����������p����}����=8o��-�����+9M�o���;�_�e��.p��F����<�h�Uf�u����\M�:W���U�V���4[+���7Q�f'zg}jb��J�]`��(P�^Wr�������c�O��6Ou���:�qT^JK�a�3�+��YO��8O�hE0EV��SR�^D�e1]���k#�W>5�[CZ����4���]����:�m=_[Y|J���X��Qd*}��fF���L:��h'?�t&_�vri&�Ts�Qze����U��[��`���W�|��+���6�`Q������Q���`G�!"A����{:�@��i����^��h�)��Gf��4�k"�����Y3�u�U���������-��NY�Q\
�sf�����n�,��`guj-�l�7���C=���.Z��j����� �����+<I%��Mn1Us� ��f���j�Qm����
�tl��*
/q�t�\,��
����.f\��������*�Yy�N���X�L'aL�%�F��n�W"���&�
#������8��a�
��$������t_�w^���+�C+!��!��������|�!����\�o4[�\�/�,Q�l����l��d��sRI�q�*0�M)��[�b���R�.b|���������jm����]��0������3O�������Y3��g��c
G.�e��� J�O�s��Y|%~�{^<i)�E�gC�u�G?�n,z�p���)�	�t��M)���#�:��	./C�th1
�2@M��?�n
��)�E-��?��I*:g����7Q�K-��z�*�-��������Q~�~��*�I��WD�-�m%������Hl�@6�5��AA��b�����h����
)�i������A��Cgh�@����}��c���������A|��nV�l�#�KC����8�!1��4�x��5v�laG���@�8�6�����]�����3:�����=o� x#kbm�\��4xW:�=�MX�o/�,X�:���;)���mJxaE0�%�P$U%�}�����6�&C"[y������n�������*L�NfS��*�Y 
���gw!Hd#,��!���#�;|�0�U�t�:^m��h;��b�F���~��9p0'��Y;�{q����/�B��?�@�otI��Zm`vz;_=XX�I"<J^�"CC)`bz����k�f���q��3�C�
�1)�J�7,�P�r��!��[��Z=���l�k����,�������*�$W+�x��#���I�C�a,�\��6����E�a�i��u��d3^�j>��3C?��km�i4������a�Z�X�Ze��+�x��j@�v���A�icYdv����t��������j�fj��L��\Vm�����<T`R�ITe�O�H[��1�g%�-����d�L"���������7�j�e� L6[#��r���GS�{����s�LL���wsEs��������{���`d`��`��h���C���v��]��2��V�:�M���O�	��������vVg��ut�������v!�p�f���g��}��t��J%�?M;�h�B��=7�����a���
�s5W'{�r������D
��%���,���5?�'�Vm��`A����i��,h7}:=�3/���m�<�����wN�}w�9���-�d�Cn����z�a��������3�:�FEL������� �@�c��i����~���4y|��;�|�QBo���{G��<�Gp��~�?��PE�k5+��&=� ���9�gaq�\��k�f�����8�����(��l���}��]�Trf�QfXj/���h�L�,�����=���r/��������E������f�=�f�w/{^�a����b��Sj�����H�T�sU+����_��l�)�J.3i5�tN�6��������d��J��*����&N��Z�[��`N��N-�f���R�[d�F�))�h�i7p�
;]n�Y�	jM��t���Sv��l1�q�|g�]fa!��O�\[�_�)�u��������
/:����,��4��&�d��JKT+�������\Z-�l"�l_sa�8J'���Y�V��{he�z�,�Rxd�F^v�k��2;�V��m���v��Z�����]���L3�Uv���*���+ji��*������u4I���A������A���o{Y4o��-;(������3����Qg���b=�Y>,fI�v%~��G�R~��^��Q��jbt4IeI8�I��=<����+,��Sm��?��D���
�d��;u+��
D�e�g�~G]�a�"�u�������R�;�U�&W���Mza�&n]U�,H�	����SS���mH2F/���+�e3�@2w�l����a����e8F������S{�������0�[(xf��������z;�)v3&y���"�@�������7������(���B���������0�k�l5,�o5kAk;�!S6:������w�Z���	H��pM��aEi7b�XW26>R,�m;{�*�P�L��4�v7^���n
��XIF���T
�j�8O���|�H�A{���#gJ�����%�R9���Cx�S2���fCh_�Lz2���0�P���/�G}�nDv�Ga�'�d�1s��^N�g{'��P)�)��(_�W��x��U8�5�TT�3���.�_���s�<4������8{�7��z�a8�4��Y&m�eKzf�������*��8)%��C����I��i��?�^�����M7=L)�d�'��o���b:���C�D\�n���j`��:S�0�4��&>Va�a����?0��g�LS���D%����#���������3
�o^{#��M"n��������%�b�������b8��>�����y��������5�S�n[�+�`�q8@g;�
n��b�����o���MoL���d�$��~�w����jqR+�%��j�����]`F�
�0l����x����c8y��dN\I��L>����D����.�,��72�s�h4���A�J?6|�`���G����3q�~2P�h�1�������<u|��<���}��N����M)��R�o��:v��@qt����ca�XF������qJE�s]k/���#E�J�cC�E�����:��z�S� ��-^#�ZR)�-i|�8�
Q�=lc�%?��b��,������0��
�a��E<"
�Wh�mF/,v���B�5]�Cmq=V7?�A���V�&�6�S�*�8u9�,`�}�_?���6$�����/_9��fN�9S5�|tK��i>��(\n@W�AdS~m�aG�er�����]^���<�xI0
	Rj�=�)��d���M;[Q�0{� �T��F����{�MQF"���l�O�=�8:r�z�{���2e�=��'bss��4��K<�Jk_^&��_%�A��QE�)�O�D��0{P���RM�S�[�:�_i�20�b����ff�^��f�by
���D���
�s/1?�g�$/��b�����`#;���s�A����QtnQQ[��
�#pnN
w����J��w��
,�S�7��d�y��b<�>g���A�U����*�~���������QC��8�	����s����� �
D���� e�u�"��U/&F�Zs�0&*5�Xs�0�9�#�k�i���O,l�kVO>��;
L���k����$��$dq�����+S��!#Q�#����)_>�11��.����V����	30��pg[Uo��2^:�b�#J�w������r��A����5s��/��d��WK�3�ux���E�
���XUuWI���G8A��h�I���W�;���nV��-+��t��e%a ���U��9�@t"�Q\��+r������Ww2�(���|�4�?���|�:F�d��`*�����FF��)!�Fx�pk��Z��b�%iJ��0Q��d�������k���j�Y��J�7W�(��Uh��ye���i��!4����v�Dy��I��W}��$�	����c�0�	�/��x��8$�I��������$!�!�M]���b�j���f��M��0�#i���������8:$�TO���`F,����W=�1H��
w�v�^*9/(�	ec��OV6�  �I��W�������b� $��G'���
3z����%�X���������n�������_nWfA>L�I0���Mjh�n�����{�������o��������d8���\Dq��H�I�N�p�@I9S,���{��__�����%�Fw%�uA��\N�HC��������Y>M$p�5��Ha
��%�ak��`�zzi��lpU�v6����b(@���Xk�����C�^�����G�hV`�j�<5d��������L�P)�k���4��7s���IO�J��j��_�<(��8���X��8��`g��(����8�_vM�3B�crk8U�f!P���p�f&h�A^t��j,	��:����5����+��A���5�����<>%��������3"��<��u2C�f��kw�����R��gG��*�S|��/��I/��u��&O���%�.�qP��^��������7!	��&.HS���m�;���@���X\*!��cv(-�4Z�_']�\��_+sy �!,6jW��O�����V��=��1`?�0�J�nA��
�l�G�M��&�D��^i��c5aO�2�b*��-O:�0�Pim��U���l9�Q�W����K��W�x�;�e��������8��bb��X���������;�D�b�M/�B3�U9ER����������nL?X�[F����L�����{������"���(IQj#nQZ��n}�~�����4t��7���eN;;�Q������@��0��5e$��U��R-1X��_G���J&���C����8[W�-�5L�x
0/���t��F���x:��'�.����V�#��TH��l��=j��B��	3 O��_)G�|�h8/e����";��m���%i�I����F����c2��*)��YFJ*I�D)o�(k���wl�+*>�}4�&V��,�*�7��Wao`�]�9n����U3}Y�[p~/�����-�X���#���m�����Cx��N���f���)�0m��&��P����/�|hd*��������"_��m������=w�sW���s�5����� d��D����k
E��5���C"��hJM������+El������yt9MX�:�T�7Q�<�	�����m{.�.��4�=���;~G�T�/��w�JOb/=��fZd/-����Jh��n�A���gY�r�$������C`8F�����6��~��U
j
;U�Y��f���,h@���_��o�����c]�C�	��8E�_1���8������0�����t@�.���0�s����u�������a���KD10r�l�-���y�3wK�!L>�S�i9����E��U5��E�C���S/q���5y�����b"41G]�2��m�l��me��j��cQq�Kr�[���?[U���$=X�a� ,�,���b�w��4�`���\d�����'�c�}~�E�f�v�����*���r��r#�����?��h��z�����g|�����,����s	�}��9���!�? #{������wr���`g����[6/)T��i�2>���d;c�Uf����z�#W0b��-�W����c�4�����}�X!2]���E�m�j���l?�3F%����#%i�� �rt���G��~;��Q�����2[��R�l�*�N��T�v��&F����e�]��r��=�C�5Dv$����Al�*��!l���NZ�k�d�J���g�Z�����a��zP���c��Ht��]�����N�UL�ir����E4��,�����5v3�v3G�����s�0���p]�;''G'�X��~�G�cJ)An5Hw�_��z��p�����9qz%����^�	�usC�s��F�i�9�"�����9}��?�uN~�UG-�:��ao��+0A�-�smn�-N��������y��SP�7��0�������.E����
����X����gW���Y�C:�J�;������RKJ#�t���	:��}�S��Z��p����2F�,��OA�D��UH��"Gcdg'!C8NT$���9��&���r�(�ST�J���v9,��]+`���K)	d�&�n���L��U7�v�+��*��{���i���'�q,�w����S�	�����(�Y��^�O��������0b��	;����x�Y�}#��������������m%�S�<����������6�R�z��s�����2f�l�����8������gI<BHA�L�Qpg�e�#��DLJ����bR�`���s���������w�Zm�
�Y�o�������IaGO��s%W�Z��
�:��_���~(�Gn`lSi
��Y��4��0�����������Z���+'��<��jyfV�(�H������-�Pv��#k���W�3h��o���������y���u+f[y����YK���u�������X�-�U��1.�M��d:F�����9~������u�@�X�J/�v^O���"R��ed;����&���i�B����e&?�c��'u���s%��<.�_>�J�w�>��3���qp��!8
�E��9�1��z(�hI�����
GR]_D���0��kk��������k�S�g�^^�_�����B�Q���1-]?���|4�+3/����p�b���J3��
��3���.%S�&�M�<�u�z�B����b&!�x���s�������8Ku�F��?gT<�j�H�w��3�@)(�|�A0��M_�!�2�1ab9t�U��������Y�U����Gbv8�;�"�cru!�,��O$�3"M d4�L���af��A�\���}e�X�]��v�����)uT�P=e�n���Vw�;��=����e#�6����c+�dQ>I���C��)�Cc����_F��k����g���w���/jL�V��hW3���,\�9��g���7�M��5���:����Q�eT�����Hg���RV�Q*���������=�y���Y=`�W��`Dd������ST��LQ�����5| �C�i:=SA�M��^6'M�U��uy��,nH��[�qyav3��������<�}�t�:��Qz�C)SvO�f{e��q���;��*X���S���I��`�[��E (�n��5���_f���
��b�=Z��^���j�3P�}�h+��d��F"5�b�����v(I����������m#��N�zv�!j��w���U�����y1lI.2�G:t���23+��*2U�\0BU�}����:�D�{�c�duf,��;nt)9����n���r%WG�q�����,a��Pk�L���	�s$&*�!�mt��Egb�s��I����+Z����S����5k��(|�H����z�#����
����T3�csA�������S���T���-;�lWl�@W��-<|q��A|=��0c�|��uE_���������S�	���N��^mD�_��2�B.,-��s�/�@��������JP��M���m9���
��{�n�7�������2��������d��&�/}no����`n��
�lp��u
�u�LiI�u�C���;	��
�����"����U����8�5�1�I��ID
�TA��_H�p�q��j	�4��`������O�KKhU�^�X�T��d�0��S��X2�*E���o����������"g~�D�Gs��=�b�q@�*X
�~?{y1�L��������+����+�o�.�aP��|��^ ��j{��������bc��2t>�k���z��N�G�����{ot��p3�q�>�P��c3��<V�������Yl���������u-\��0M�@W�Cp���M0�b�s��I������o<�a+n�	*�f��������C���
�d=����D���=
v������
ZG�B��_��w���g�g���M��#�����7�ny������@��D�'x+�LhW�����Iz�n�tR^*z�5��%(�+O0*��Y�����D�`x.J�B5R$����I�R �RlqS��������^��UC��V_������`mFp�F2���J�b4����2l�>
p��Q��N���q>�s���N�Wk���_'��UN�i/�\���$���3]������Y��^z��i�s|������X/�+��1�[zN�S_�����d;��c��+����H��V����jm�^�m.{��k�.L�VP���i'M8��)�H�_�u^�� ���D��c�p�MV��\
D[��`���7p���	;���^H�*P�������L�0�H@��>�
A��v+0�-]*�f����1g��46�1�x(�s��L����!���E��LNb����B�����@�`W�sAgr����;
X�f���j���"�mT����I��Y����K�E�R������e@��4�����C���4��J�,e>�����G�`��C������e)��[����j���v�oC`�_�Qz
t�K��c�,i��b���K��z����L���"�*��K� ��F�.0�����C@=�@��+���S���d��8.���6��|c��y)^d��2P��%�)oR�c/�����cq����Y��Z�l'���9=����������;'����)|�?|��I���}�{�_��|��v��c8���`��A{�?����y�9��g��<���/p�bD;���?��[���
�8����k���~���������i�}��qq
�~���/N;���7��wt�
�{������Br�Ear�F�d�}��?4�����P}v��S�����^3�(�x�A�Q��-Ybskf�0����������5��Vm�������8p<�wyl�G���9l@����Z�*e�T��$�A�IMK�~���U���@@I����Z4+5P~�N�{���;n��5N���6QY�SP]��l�a�����3�F�l������4�pf�+��A
��[��o�YD������qK��)���D2�F[��TW�;��F^s������9���UmF&\S��\�+�4xD�/7�����O�����Ylj26=�\�9��k�h�E�a���n/�P�n-�Y��[�f3�j8��v��f�}x����x���V�����"|���:|������K����P�����/���/��/�OE���C�JE���y8$���V�8=l)���x)>��t��q��-�KO�VE��Q�ZyZ}������
Nb�2lZ��z-m�H{�!ptL�������Y�wQ�#hL��8�j�V�Y�m�$x2�%�������.�Q������
N����p��Rr{�j����O�;�D�S|}l�}h����.<���8��!��Z���������{�t�B��C�=������ �����A|9@����	����'���Nmk'��Q*$o�~����~���I���7�g��c���+�0]?��G�������w�:*i+��7�)�wd�f-�?��N��f������ u���3�Z�O:����T��m�Q	�O+���`b9M�rj�E�+�Vck��B����`����_(/���������Rj��"qt�
$��~F��5�����p��l��3����n�&���T��'m��,M�Z���q���� �c!�����LNr��Gg8���=��u��!2�vNC����a��mM���	h�5N	`����QT+w�u���Y��.�2<P~2����S=3���AU�������]x������h�v����/�rm������+p3T�����8��VR�b����Z���������Jp�^��"����h'�;���)%�&�]A���2s#\���@�����R�za���T����G��r,J�X��L�p�����e��
��"��j������X���������jL3��ITyZX%��Y|��@��*h���M!��N�!�9v0�o�2j��2���c�c�)^X�uyq�i�N]n��B���mo�Y���}/��3�����z�������P�r.�����h����xk'
Mu>��hZ[�����m���������1��
�
~��C�
�G�]��9|yd��X��u���(��F���d{�62��#����8�;s���>�����m�P��x���\oR2�]8��/y�EI�T�v)s��n����G}��?D	�,��`��7W�>���DS�|�u�3��aM�%��u���Q�D��H[Z�7H@��r$��k1'd���b+�n?��Q�W�t?v�:� ���KJ�}�?�����(�'���<(+:������l}%f����9��eSn�D�`�f��w�a�<�*k��V8�ToH�i:��R�O����`M������27�m
efeK0�Q		A��^MT��jC��T@��Uxb4���k�3��FY+�,��bg,������(~8k��!��{�����]i;�m��l���,>�m��"�!_�����T����q*Vs[fNj��"b���ld�7�`�c�/�����~Bg�^?���+��u��H�{�Z�����W])���+����&�����o86��l�x���� [�I���2���N�U	;k4Cmo��"V�g��@�������HIZ�@us�e3���E���i���(E������C�����m��%M%5/����g�?3�V�MpBI`�,X1@�C���/����@E�R��9/�d��,��n
���Y��f3��<��_�L/.*6aL9{��e��������=��*1�&��
����+�}������l�>����5N/�����ben���%�tkc�Po[X��(��z�����B������(��������d�
��
�Ax�N���

�X"�������i�$����u{�0�	e��]0���LQ�&�����eq��*�b�{#�8A4��:2�W�0��B+��*��-etv�_O�a��A[�L��M��8I;RnF�XsV���s����zu�~����n��PZ���tL1n�'��zl�kTk��	�E�
V�,!�8���a4��x`��fSt..0��`�.FCNcV������%�����7N���`G�(����V�SJ�:�R���,��M��Ia�y���.����	=�5�qAy� ^�n�R?(?:������%��;��F���(��^�v�������]7���{���)J'�����_��N����{K��7�=u����wZ/<�r�������R����p��`�p�y?`��7�f���y��d/����gI�M|�?�a�Y����~/��Oe��j�4m����f��me�,~@���S�>�A�s���5�l��8�T����I+FY�h.��,�:���7f�r���9��u]�[r=��.&k!���F���Y����dZ�Y
p�t�P����1��<>%#��N;��Ve�	���������$X�<a�oM�5[�<��V8	/p#������A�6Hn%7�V���~
t�1��X����zI2�F��
B�N�TP(F��I�f���eze+UL�;��V���
G���I�Vs+��������4��#E��g�|)�[����O2`���]� �}����o����6�1�lu_�����<H��� �W1��%�d|����b ����Mb�o�	"��7JkG_\R���hZ��<t.�)�r����K��&���9|��T�"����
��YV���u������p��/�7�":�_O����r!����������~������G��tYRc;+U*�&��������x�>�����U�EA�?�� ����{T��|����B��Er�����Ve�R��(4M���-rz�+d�9�R~d���x�+�������t����j��gkHy�VS��2�3�#JV��_����
F5��2O�q �E� ��
AT�&�'(��������$~7�m{!%�y���x�3#�6�_u��_��Q�85�o���5��������${c������U��������7�.�i���%�Z�>fUz�N�8��LW��P���r���D�ae�l���-Cq��m
�+[��
�����m�PXIF��*(����M�j��Q~������:���s�X�s������]���s��p<�6^�xs�����C���!�/�Uy�)::{�9����+8�[�]�
A�X�&q���&�������Z}�8����a�>L��W$$�����o��|>��3Tk��d�t��=�9}Z�)���	_�D���r�>s����<�&P��9_�N��t�kU��(4����E�|��g�TG�b\��=�}������2�r��A�"�Y��QC;�q��C�k��`��)�������m��R!"�����F!��P*\�����������#vV���{���7]1'��q��HKD�E�*|���b�����B[NP>U�]�{��&q�X:�� 2���*�"���Nj8y����)^��1�/�� �ib`�2����O.�����&	�\����7\������[�5��/��4���5��0s���,=���g��k�!��M(�t�]�=��|�F.����|V���/^u�{�=`������ �+����2X/��U5{�f�����Dh������r���]�8L@nsJ:k_	R5d{2��-�3�)���S�J�\'U,���sb��5+�i�Jv�ylT�0Z���PrU��%��-�\9e�sM�h�D��H;-����)�ZT)�u!;�VI--L��3��>@J��*k���Vx`�K�(s����E����J���~���X)�t�4s������2�#�������8$Bf�9p�s�UG44�!��Z����l�A���0qF�_Veb�:�o���f��S�ND�d!����3��������)�,�Xz��,��,m�=���������P�Sh�sg�8��MV��*� ���k�� �w��b� ��'��F\Z��+�B����^|��LW7Fz�}�����*n0:�l�"�����q��~��m�N���o��h����\��qor5%�
����Sf���hi�\�d�����[y���}g#4�
c�����E���]{�]���<\�B���������k$gZYu�lwq1����=lg��2��9����St��XI&z/c�,��Z
8r�j�9����p�P�a�Z�@�,������L��uE)�(���mNv���L�q�!$��������PchT$4P�t��%��O"���x�Y!�����}����
GVUr�����#�=�!'`bg��4�Bf���
eS�����&��o(W"������J:1�b����H�.�������
p�VD8��pEj]u]������/aM������$c#6��3
�H�}L�A�aB����Y(|������Qh�C~AIl-=��9������HUH�����u���8����TRG��Q��E�N���E�M��J������u��B.v��rO�2r���~�ZY/@��!C�|�0����!��&D��L�p�z/�sA��'�#q���>��RrZN�~�*s:� �csn���������F����3D
y�O����_�j���dj�����/����7{�y��i"�&z���
������<��y�1/��5����U�*���=~��y��v��S}V�3n�eZ��C�#\Z�Y^�� �H��� 	r��f���3�����X/�N<�n�V��$:J�BGmM��Gf�����e���h�j��fY��i�P{6n�!��nUO��, gl(h��"VwdO<��E����������,������pL��
5��`������0��`fH���O���)��\z?:U�CO�3P�[��&�XpN&���Ll��p���mv�&���olG��db�Ii����<{
��{=�2����p)�c�|�t3�lb�=��u�5�v������2�'@6r���4
�v��5������y=L�Z���\��qm3�����$�	��h��B�������w�#2Pkx |�V�����S,7:L�HD���O:��
�������-�Y�nu�g�|�rf���8�i���A��M]K�TZ��L�t`�PRO��E{0���1[TW} ���]`Mc�j�.���JB1���]\VnI����g{����������������{��0�-	�#?�nP�[�/�����{�.��8��T���Gi������=����r�]L�#}j�l��Y�-U�:���qu��<V���%�U��V�}kEi��K�W+���K�!�F�\���`�5lX�v��i���[�T�U�Zt�F���(&��e�r����,��D���}�n�#����i�������S��Nr��a�GF~��5D���F�g(�d�O��5
Xl��#2a\j��](�\�����Z'�
0d/�����T��<o����+��	]27S�h����6����eL����2r(&����@=�8K�
Xn��gQL����R�#��z���,�������-���& ���D���Z��L`��U
���_�a�*j�;����=m�j�@n[���w������gZ�@.�k���j��Y3M�`�q]��N����wo�1�GTK.�UT�?�]����������6=)R��6��f�������z��C_�9�s
����9T=�	�a�<�
,X�'��x����6������MsmsB�:���k��zD��;�q�L�������t�(;��lZ	�����hu!���Rn���\Q�nKL���ds�MugL���rN�|6��_�M���3~��h�0�^�+j�"�b�l������9�A��	8��>���M
A��o`������rW}������g�����E�P�T���*H�94�x]�Z��_�+C�Q#}GC�|�<��g4���L�_}����y21Da0����(�Q����Uul,�\��`��)��V��/�1�]�*e�1���5Fz�-gLK��W������"����|}������~�%f����~�-:{��������FY��Rm{Eq���x;��l�x;t�(f�����Xr�vlk��9X*�]B�E�7�LR�i�� ��y
�K,1#�v��>��O�������s�������k^��!��w�����m��O5�
X�:�V�W�����Y;�QL���"�q�`p�,�|�s��-�� '����@R
L��?�������PH#t�-L@[������*�!�>�^���ry��5�q�"w
S������o���������r��:|��&z��/u�W���������L�6UL��5�-�z����T��F�&��5�\.�����L�T�nX������g��T�
�R�O�\���+C�sBf�����c����T(�_�7�0����eT2���������k����?�9�tx}u���:�����hZ'_>�����33��tU�Y���+���B;������p�R�#4�$�b��IB�S&�H���u`��X{!���i,T��*��������n~���4G��gL��	r$�1�m����1�_�>�#���#t68����(V[j�aV��q��2T�8:1���pt�5j"���N�B���]l�ia|!da.�QY��
�3^A��b[5���M���s:6\���^e�R��s���xF^p'��0*��}N��t��	���t�!{��O5Xi����9�q��R��/���sp���b�)�����i+����\O�m�����U�k��w��
z1�w��=����{G����&�|�y_&���E��/�%�������OS��F+����%j��=v-"��"_�F_'�&rE�G��D�V���,�T�����T�a����8~&�n�D��V�O=�q����IM�!�
���������&��x~c���Y <�0����q��E�S���*�k|�������e��vw��=����w��rt��L���&��; ��zx�v�E��2�#�T65�$'Z�E��1`�VD�9����O�;Hfaq��eC{D��Y�9��M��7=��c��:e�Az,'A���}�_O��O:�&�dhv���P"���p����ts��iY�_��?WT�Qi�F��W[m�l�f�b'f�����r8��v��]Wj���A3f�6S@�`�%�y�]��AY�����}?�TX���R�w��3�i�s������V�m�N7�7��=
}���SJ�>��|��&H:�|�E��u(��p����7*�[K��3�J��sp�{��zp�g3�2?�=����������C���c�W?�e����&��>�_N�9j�PqS�����x�QP�:,P�Ce'��$X�\�XD�����>�������Eo:Jwy��>q7#��h>mn~Mf��R�V���-��l�A�n�l������#0��E�g26�I�QU��Lw�����/"��+uMm�M���tv�o��#}��}���FlD��:T����C�H��\Z��K��7u�:d2�p���v�{a\K�j
�Z�����3�s+X��o��
@�V�V�l�T#w�$���4������:'?����h����b�Y,D�=��iHf"y8Z��3�p`�i�����B����\@K%#�+MRc��#j����n�uU���5T��VP�X�	��R�w�����~w��a���(tq$����9cc��}��?�:����U�6��c�W����Z�3���A�3|�\�OJ��?����ZVQh�.%���v��"G��G�L�����71����
)�c��
X�Jc���mV���9M�AZk�z��
��� M�2�tUj��)�NI"��Pn�s��,�~s)2�M��?�t��eN�D�u=I�1K��P��X��_���J�sNCO"*xZ��[�	=(f1�
���}���t������R��ph���9�r4`����d�y�%����:�
�K�A��Elt=\��Ro�Z�9+����P�VH�^��(k�������G���(�'��;y����A�eml�����zm��<��]�`4?6�������o�8�����{�B�>����e`������$��l
��0�K+I����&q������~L�1pRJ����7����d1`�)�~e��\%���\l��-�6?���G��O!����@0����i8F�y�������Ju'�Uj��*P�U�]��LN�8�t6�,	�c����j��5g[���_�[�y�d���J�Ta�%�4H��$�8�=�u�J�G��j��p��X�Q �`D&GD�Q�e|u2�M�*36�����@XU�����{3��A�v%��[%u�8��g���:��e��I@x�ijV���F*7=*����r�LT[�V���KU��YT,��;6��1|�>�Ug`f[f�zCc���@�Pv�Fu-�>��!��<����|��D��XH��E�_���Z�S����r��.�k�������O���j,�J�V�T�CqT���y��2KgP���������e�W^���;��;�X�����[�QJz��	V���V�r��$���z�
�c�� �~Y+7��N��+Gucg�E-[[q�-!�\�=Z�o�;�Z���8�!>��#}�@�=�#��������uk�j�H
@]*�5�����;��y`�&�p(���T�;[F��InQ�F���������,,N�B��x�7.����������+�i������xx9��9!M�R���F�F�������N����+d���g�'�Xi?Cux��{����XT��H�wP{oZ$~����1��d�t:�����p�����d�$���=���rg<X��Ix
�r�+�@7�=�?�~�K� ["c%�SW�Ro�t��4�uT�"���N�E�����;���o�a8o�O�s��=��m�A����K��q��f���H]����~�\��5�c:MD6I���o�	��<Y�'TET�o:E��h$�[�b��6N����7�%�k���*��>����as���tPBEAx������xu)�Se��[�"����>C ��t�}�,��&0�G#���!�/F.���$9X����??���>�����UHB����7������d�.o;������h�������X��e��������[�Z��R_����,Y�7v��}�����E�u�l��`����7&<L�����@�G
�h�x:=�ye��"�gt�����R��9�xI�(_�I�?*��=C+1�HnMMI6F�d��;&��h�Ek*,M	]*��Oz1ZdmD�t2M7�m�o���+AF�����R�FF��
H��
�+�9�4��7���
���)NE�R��������]
��-u��v3��1w�h��"\�D�a�&�$w�!�+��nb�3a��s<_Z����uo������c|������WtpSA��+�W�����u[��~�����F:���8�z��V\G	��JoR����UV�������+��*M
v�`+��p�	�Y�h���Q��(ZO)���R|M+k;��k%����c7�
�/����C��������p��]���s��r���r���de�
�')����hn���N7���o�D1����
����jw���73��}�oul�]�e�k�u/k�U�hZ�'�9�|��D�1 ���!l�DQ $��`&|0[��Y'd�$k�J}���<�_���'c�lY:!�il$�����#�"����]���������\~=8�����6�/C���^re�|�{#��H=��g�+1��{��2����lW��[��v���!/U�vB7�������Rv`v5>`���Ux�e����n;���N%�,�u�[��.���e���j����ezg���h�U�9��.���f�b��	����s�F{�g��k�o�s����)9)t~:>���.E����I��Ls�k~��^	�uk{����������Va���n�uP�v��eE�uE|�s��n^�z��cuF�u0��������V����-���6.�ZP�������	�c��p`��4�\2d�/x������7�&�\�\O!�8U�3�:�'���l�Icl!�0��N�E��c��-[�hU���������z���>�������A�u�n3)���5Vx�;���qy@�JX��*aX[��,W\v1����b�� �Dz#u���E����<�aQvKjd$E(���t����G���*��u� �W�u
;E!8@4=:y%����<>�������}����.[1Vf�j�2��Ll.��GX�h
R����b|�dx�2GX��|
K��{�l*�uY�2�@��v�4-}�w_�&(I���X������\�0���2@����x?|t�j�zW�r���Z@��l4h�����(�
'���r-�������>�E� G����ieA#9�V��2'�W�`y����E6�1�XV^����m�z���9�������{��W�A�Xb��F� ��)�:����1\����}v���j����EI_2�E������$B�#L�Y��R�h�����	�N�x�<�wGk���|�)���3�)`��hk��}�9��X�C�
�B�`����w��Z��o[\���v���g���{�T�����g�Rk��nPG���������JB��0�1������F�>�L[���X��=4j>�-?(����|�����@�n��r�C��"���z�o:��E�SB������	Z[�����c��Ov+Z<�^��S����O7������+:/�r�]��m���F����PcrY�9s���O�����U,�;n��Q��Xe�a+"+��$�e�o<Z{������A���a��/�����n�v7^�����l���[E����p[G8O=Xr�EZ�{(�l}��>k�2��y:1����p������)��j0C!��J
^O�������G E;�}+Z�{TQ*�f=_���V�61E
�g�(ID�T������-K����N�I%���s�%bi.h_u� ���I���^�oCz�����H���~�oXIu�]�u��74��x��c�E�,��Gz�!�Mc��a<��]l)��������f8�6e�9e��
���j�T+��
}��]3Q�����x�'O��,���uS~w���E�r~��|@K�W�]{�k�Y�;����8J#�����|�������K����w���e����ia���fL�YV�*��@���3P2�l/���N��[Zg���Y�����4]Ytz3�������Qk�4:��QM��S�i�y�:����^E�����v��En5��,=�1�q�����|�M��7N��0���~�7G�ts���>��S��S!A�2�����	}E�� �W2�ko�D��4������-��V�������A��<�>��[�qM���[\U����P��3��4���mw�>9�t��:�I�[���yw����~�P�9�1�#r9b����fYl�����3[��������}6�}���`��ji��Ke�0`�5�n	S@fdq- ��	[��;��o�[�����O��*|�u��A�C��o�*�l�j8��
2l�������Q������g�Y��-v�uB������FWNV�������1�8��Y[F��Mo�J��-�PN?m��E�*���^��P|�x)�������KU|
d�C���i��0�I�63C�����3(N��;2�W �:�<��W������
m�(tz��Ye'#�\�=<��V��M���
��Z'9r�����@�t�3�bP�!s�eN]o�����1�`'X-2V�$���$B;6gU{���N�J
�AD�@�0��-�_��m��|�{&��L��No���h��kQG<����$G�)	����e�����C��^�G#���M���5Sj�5���I�]�z����/�����s�O���GhGO�{0��q�//���m��`'{�0�^���-yn�� [:����.�3o_�6�2��
���u�q~����JX��a9_��M����������s��Z^����[�]\=hew7���I`J����
�m�����OrIs
���Og"�U������ef��S�d�v����EZO�e���R���^��x�'��&x�����D��FuE�ze����bm/�r�V=h(v�U�����~���N���?���t��C�g{���A�����u��U�'���;�c�
/t�����C{�s�i���;�����������s���'�y���_����������Q���#l�����6���G���;�	 0��6Zj��+������������0$O�x������(�Q��UD�Zs��(��P��c�v=��8�_�=�4`t�,��'��'T����dD�]*��t���<�A>�#k�%�P�g�W�"���	�:`��B��[��IJ���H�����#�7&'	�+Q7�4���~L�1Y�A-
�=���f�"	�^bl�I4������0�qt����p��WaD������TM���%�=0L�TB�4@�l6�@��s�z�����?D&h
�r,����[1�zdFi����&����51���������}���t�wP�Rp�m�_4��,5�u�k]����~�������*2�3����M�u����kuQ���zB���(����Q���u�g����
���j��l�>��~�9�'�o�'?�:?Z������&�k��w���<
����y���@+g���2a9<WJ��������]KY�Ud&�������%�y�x�I{����)�|�P�z �����*7����*7y���*o�z���@@�O����k ��e9�����Kd�Z��A��Jl<�x��?���=~@�~Uf��Wo)T��������}���}���;�n")$,��`�+MF;�b/�8%.��1K������P��t8&�b�4��?8b�:k��w��J�h��H#B�3���{c����f��6�� 7L�H �N��]��lRX>4�tG��vt�
v�w?+��"��G6��b��s����2U�p@!U�!s���%����@���b��U��w�P7��&5�S�?�������a�|p.X�dz��sus�
�{�iy�F�
Q���I���0�r<��UY@�J�	X�7�=Y3�A`?\��-�x|��!�vu��h���/LW��w�]�y��!-��4�Q�l�@�NB�y�@^Z��0�f��%���J��&X=��'�M)43Hw*��2��-6��~�G�=:A����������70~��a����R����>8
J��5>.����O�������*��K��TR�"����wOZ%CM���:�
r�bv���kk'��4�m�n�"w�,�aS��v�S9����nXE��$����5����r���!*�] l��K�J�TE�8�lD�Z��B�X���z@
^�}l�G+���6~�����N���jE~V�}��g]~���C_0�}��/z�y�1�
r*hJ���x����� �B�-"�t!��Ty� $����0���I��"vwQM~���q^"�6��t���	n��9F����
�b������l���� Fj2�hVU��	��R�b������������C��{q����P�����+��FM�x)jjE~���v�8D���� �����A{���n`���b=�0[/��yY-�
�!/kYjP��z5�1^��<��>�^E�\����
=D��J���<s����]3�O������\�O��GE�nu[2�����Q����#RZ��[��j���-��O�H��g�u>�w�x��]~���&��T�I�.
��A�|���j��9p�m�����`�������}q@(��1]<%���n��b�3@2��O���d�c�b�t��zY�Y[h\p<c�nd���l��G��]�j<#�����"%�n��[Q_yD����@0�S��$��U���\�#�����7�dQ��|M\Z��{:����f5�O�cs��4j�3x�v��H��|^K�����YZ`���^���
�5&���8����������wK*R��������-��=���(�ah9%-�s���~<�C���ow�k����{��qxI�7�����w��v�Q��HM_�>i]�C7=/�4��H��}�^k�s:<���������B��N�-@5��������o����]����@����'�����hWr��'[�+ks�}=M��Qv��a����R��O��]���3�v�O������&��e�S�z��gg��7��k�����1x����:�BO�f��(�~fwc�����a�����i�;������Y�VW����vB_�����B�e��AH���@��b�$������#�,��W��6=�y�������)��GOO_��-�S|���DS�dMs ����k���#����O��<$Tx8>�FJ����S����
�Y�va�/l�o�h��5"n#��_�!
�@K��&�U&�73�?�����Y�i��x�y<`�x�����Y�?���~�}<�x��#��+�P�

�C����N�<S������w�V�h�d��Pv����G�x��;B���_$��Jh!������ZE�W����UMX�U2}��Z[~U��L�/�Pl���Me�/O���zM��C
��g����A���J����W���l����;�J��S�Z��j�MU9��.�S�-�;h��l[U��U�U��+�Z5�V�_�����k53=����V�"v�}���7���f����!?�7���Z��<@���+_��/VX���2l+�#{�����23~�i|��b������+�T�6���+F�&C��#������m����t��������A�����E��������({�������X��k^��	�9���"o���Z��0(����,�"���/����"�
�D��I4k6|<��\�m�;''G'���2M2E�S��)���p���f���������r���8�����>�k�C
x��&`��|<�	5��1%
��@������j�NWx�i�P��7|����|$��������!������g`I����|�><@�t�F����t�v?5W�F����jO�|�e����1�����f�t�7�_�W�c���������
�K�������K;��1z�}L_���K�j17�/>��<��7�/�|��������o%�����b��.N�x�U����+J���9��{`+$�+����hq0Lh��t2�� ��h��l�?������Q���};�� l����e�mq�t�z����������������@��}���g�$����L�������	|�6^a!����^��}=9:���!���H�Mt~:>h�������7���O�<������Y�j�_�������=5��1�i��'�c�7���p��d�J��+)�����L9��t�~�9&��1��7�xs�#}bz�rv��P���<���
>y��{��-�K�U���?���%��=�c�v���+�U���{����\u1�HN�0����P�kLz����X�����"a|���m�Z������V5�
v���n���_�_O��8�X��`|�������Y]/^�
�I���1�BG�=�{�y����]���2%��^D1�\�F�a �d&�z.�=��
G�(�B��#���h�JU^.��P���qPG�Yzg'��X�
�R���+��XH��,UP���!q��h�`����b�)���I'S�qs'�Y���(V��GY
nodeAppend.patchtext/plain; charset=us-asciiDownload
*** pgsql/src/backend/executor/nodeAppend.c	2008-08-18 16:20:40.000000000 +0900
--- pgsql.patched/src/backend/executor/nodeAppend.c	2008-08-23 07:37:29.000000000 +0900
***************
*** 143,152 ****
--- 143,156 ----
  	int			nplans;
  	int			i;
  	Plan	   *initNode;
+ 	TupleDesc  save_tupledesc;
  
  	/* check for unsupported flags */
  	Assert(!(eflags & EXEC_FLAG_MARK));
  
+ 	/* Save tuple desc */
+ 	save_tupledesc = estate->es_rscan_tupledesc;
+ 
  	/*
  	 * Set up empty vector of subplan states
  	 */
***************
*** 232,237 ****
--- 236,243 ----
  	appendstate->as_whichplan = appendstate->as_firstplan;
  	exec_append_initialize_next(appendstate);
  
+ 	/* Restore tuple desc */
+ 	estate->es_rscan_tupledesc = save_tupledesc;
+ 
  	return appendstate;
  }
#5David Fetter
david@fetter.org
In reply to: Tatsuo Ishii (#4)
Re: [HACKERS] WITH RECURSIVE patches 0818

On Sat, Aug 23, 2008 at 11:33:13AM +0900, Tatsuo Ishii wrote:

I think I may have found another bug:

WITH RECURSIVE t(i,j) AS (
VALUES (1,2)
UNION ALL
SELECT t2.i, t.j
FROM (
SELECT 2 AS i
UNION ALL /* Wrongly getting detected, I think */
SELECT 3 AS i
) AS t2
JOIN
t
ON (t2.i = t.i)
)
SELECT * FROM t;
ERROR: attribute number 2 exceeds number of columns 1

Is there some way to ensure that in the case of WITH RECURSIVE,
the query to the right of UNION ALL follows only the SQL:2008
rules about not having outer JOINs, etc. in it, but otherwise make
it opaque to the error-checking code?

I know I didn't explain that well, but the above SQL should work
and the error appears to stem from the parser's looking at the
innermost UNION ALL instead of the outermost.

Here is new patches fixing the bug you pointed out (patches was
created by Yoshiyuki). Also I added your SQL to the regression test,
and now the patches is against CVS HEAD. For your convenience I also
include patches against the previous version.

Thanks :)

Any progress on the READMEs for this?

Also, now that we are into August, would Asaba-san and whomever else
like to try out the git repository? To do so, I just need a login
name and a public key.

Cheers,
David.
--
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: david.fetter@gmail.com

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate

#6Tatsuo Ishii
ishii@postgresql.org
In reply to: David Fetter (#5)
Re: [HACKERS] WITH RECURSIVE patches 0818

Here is new patches fixing the bug you pointed out (patches was
created by Yoshiyuki). Also I added your SQL to the regression test,
and now the patches is against CVS HEAD. For your convenience I also
include patches against the previous version.

Thanks :)

Any progress on the READMEs for this?

I have posted kind of README (implementation.txt) along with patches
on Aug 18. Have you read it?

Also, now that we are into August, would Asaba-san and whomever else
like to try out the git repository? To do so, I just need a login
name and a public key.

I will send you later.
--
Tatsuo Ishii
SRA OSS, Inc. Japan

#7David Fetter
david@fetter.org
In reply to: Tatsuo Ishii (#6)
Re: [HACKERS] WITH RECURSIVE patches 0818

On Sat, Aug 23, 2008 at 03:35:52PM +0900, Tatsuo Ishii wrote:

Here is new patches fixing the bug you pointed out (patches was
created by Yoshiyuki). Also I added your SQL to the regression
test, and now the patches is against CVS HEAD. For your
convenience I also include patches against the previous version.

Thanks :)

Any progress on the READMEs for this?

I have posted kind of README (implementation.txt) along with patches
on Aug 18. Have you read it?

Oops. I've now put it up with some minor edits and formatting at
<http://wiki.postgresql.org/wiki/CTEReadme&gt;. It is linked from the
Commitfest page.

Also, now that we are into August, would Asaba-san and whomever else
like to try out the git repository? To do so, I just need a login
name and a public key.

I will send you later.

Thanks :)

Cheers,
David.
--
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: david.fetter@gmail.com

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate