Browse Source
Manual merge of mysql-5.1-bugteam to mysql-trunk-merge.
Manual merge of mysql-5.1-bugteam to mysql-trunk-merge.
Conflicts: Text conflict in client/mysqlbinlog.cc Text conflict in mysql-test/r/explain.result Text conflict in mysql-test/r/subselect.result Text conflict in mysql-test/r/subselect3.result Text conflict in mysql-test/r/type_datetime.result Text conflict in sql/share/Makefile.ampull/374/head
50 changed files with 1243 additions and 442 deletions
-
567COPYING
-
20client/mysql.cc
-
5client/mysql_upgrade.c
-
9client/mysqlbinlog.cc
-
2client/mysqltest.cc
-
4mysql-test/Makefile.am
-
25mysql-test/include/view_alias.inc
-
2mysql-test/r/compare.result
-
2mysql-test/r/explain.result
-
15mysql-test/r/gis-rtree.result
-
4mysql-test/r/group_by.result
-
67mysql-test/r/merge.result
-
33mysql-test/r/myisam.result
-
4mysql-test/r/ps.result
-
62mysql-test/r/subselect.result
-
18mysql-test/r/subselect3.result
-
24mysql-test/r/trigger.result
-
8mysql-test/r/type_datetime.result
-
2mysql-test/r/union.result
-
13mysql-test/r/update.result
-
4mysql-test/r/view.result
-
111mysql-test/r/view_alias.result
-
17mysql-test/r/xa.result
-
BINmysql-test/std_data/bug48265.frm
-
29mysql-test/suite/binlog/r/binlog_innodb_row.result
-
1mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
-
11mysql-test/suite/binlog/r/binlog_tmp_table.result
-
37mysql-test/suite/binlog/t/binlog_innodb_row.test
-
66mysql-test/suite/binlog/t/binlog_tmp_table.test
-
24mysql-test/t/gis-rtree.test
-
57mysql-test/t/merge.test
-
28mysql-test/t/myisam.test
-
30mysql-test/t/trigger.test
-
16mysql-test/t/update.test
-
92mysql-test/t/view_alias.test
-
16mysql-test/t/xa.test
-
5scripts/Makefile.am
-
1sql/item.cc
-
2sql/log_event.cc
-
7sql/set_var.cc
-
8sql/share/Makefile.am
-
3sql/sql_base.cc
-
18sql/sql_delete.cc
-
12sql/sql_select.cc
-
32sql/sql_view.cc
-
14storage/myisam/ha_myisam.cc
-
22storage/myisam/rt_index.c
-
126storage/myisammrg/ha_myisammrg.cc
-
8storage/myisammrg/myrg_open.c
-
2storage/ndb/src/common/util/Makefile.am
@ -1,352 +1,339 @@ |
|||
GNU GENERAL PUBLIC LICENSE |
|||
Version 2, June 1991 |
|||
GNU GENERAL PUBLIC LICENSE |
|||
Version 2, June 1991 |
|||
|
|||
Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
|||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
|||
Copyright (C) 1989, 1991 Free Software Foundation, Inc., |
|||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|||
Everyone is permitted to copy and distribute verbatim copies |
|||
of this license document, but changing it is not allowed. |
|||
|
|||
Everyone is permitted to copy and distribute verbatim copies |
|||
of this license document, but changing it is not allowed. |
|||
Preamble |
|||
|
|||
Preamble |
|||
======== |
|||
|
|||
The licenses for most software are designed to take away your freedom |
|||
to share and change it. By contrast, the GNU General Public License is |
|||
intended to guarantee your freedom to share and change free |
|||
The licenses for most software are designed to take away your |
|||
freedom to share and change it. By contrast, the GNU General Public |
|||
License is intended to guarantee your freedom to share and change free |
|||
software--to make sure the software is free for all its users. This |
|||
General Public License applies to most of the Free Software |
|||
Foundation's software and to any other program whose authors commit to |
|||
using it. (Some other Free Software Foundation software is covered by |
|||
the GNU Library General Public License instead.) You can apply it to |
|||
the GNU Lesser General Public License instead.) You can apply it to |
|||
your programs, too. |
|||
|
|||
When we speak of free software, we are referring to freedom, not price. |
|||
Our General Public Licenses are designed to make sure that you have |
|||
the freedom to distribute copies of free software (and charge for this |
|||
service if you wish), that you receive source code or can get it if you |
|||
want it, that you can change the software or use pieces of it in new |
|||
free programs; and that you know you can do these things. |
|||
When we speak of free software, we are referring to freedom, not |
|||
price. Our General Public Licenses are designed to make sure that you |
|||
have the freedom to distribute copies of free software (and charge for |
|||
this service if you wish), that you receive source code or can get it |
|||
if you want it, that you can change the software or use pieces of it |
|||
in new free programs; and that you know you can do these things. |
|||
|
|||
To protect your rights, we need to make restrictions that forbid anyone |
|||
to deny you these rights or to ask you to surrender the rights. These |
|||
restrictions translate to certain responsibilities for you if you |
|||
To protect your rights, we need to make restrictions that forbid |
|||
anyone to deny you these rights or to ask you to surrender the rights. |
|||
These restrictions translate to certain responsibilities for you if you |
|||
distribute copies of the software, or if you modify it. |
|||
|
|||
For example, if you distribute copies of such a program, whether gratis |
|||
or for a fee, you must give the recipients all the rights that you |
|||
have. You must make sure that they, too, receive or can get the source |
|||
code. And you must show them these terms so they know their rights. |
|||
For example, if you distribute copies of such a program, whether |
|||
gratis or for a fee, you must give the recipients all the rights that |
|||
you have. You must make sure that they, too, receive or can get the |
|||
source code. And you must show them these terms so they know their |
|||
rights. |
|||
|
|||
We protect your rights with two steps: (1) copyright the software, and |
|||
We protect your rights with two steps: (1) copyright the software, and |
|||
(2) offer you this license which gives you legal permission to copy, |
|||
distribute and/or modify the software. |
|||
|
|||
Also, for each author's protection and ours, we want to make certain |
|||
Also, for each author's protection and ours, we want to make certain |
|||
that everyone understands that there is no warranty for this free |
|||
software. If the software is modified by someone else and passed on, we |
|||
want its recipients to know that what they have is not the original, so |
|||
that any problems introduced by others will not reflect on the original |
|||
authors' reputations. |
|||
|
|||
Finally, any free program is threatened constantly by software patents. |
|||
We wish to avoid the danger that redistributors of a free program will |
|||
individually obtain patent licenses, in effect making the program |
|||
proprietary. To prevent this, we have made it clear that any patent |
|||
must be licensed for everyone's free use or not licensed at all. |
|||
Finally, any free program is threatened constantly by software |
|||
patents. We wish to avoid the danger that redistributors of a free |
|||
program will individually obtain patent licenses, in effect making the |
|||
program proprietary. To prevent this, we have made it clear that any |
|||
patent must be licensed for everyone's free use or not licensed at all. |
|||
|
|||
The precise terms and conditions for copying, distribution and |
|||
The precise terms and conditions for copying, distribution and |
|||
modification follow. |
|||
|
|||
GNU GENERAL PUBLIC LICENSE |
|||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
|||
0. This License applies to any program or other work which contains a |
|||
notice placed by the copyright holder saying it may be distributed |
|||
under the terms of this General Public License. The "Program", |
|||
below, refers to any such program or work, and a "work based on |
|||
the Program" means either the Program or any derivative work under |
|||
copyright law: that is to say, a work containing the Program or a |
|||
portion of it, either verbatim or with modifications and/or |
|||
translated into another language. (Hereinafter, translation is |
|||
included without limitation in the term "modification".) Each |
|||
licensee is addressed as "you". |
|||
|
|||
Activities other than copying, distribution and modification are |
|||
not covered by this License; they are outside its scope. The act |
|||
of running the Program is not restricted, and the output from the |
|||
Program is covered only if its contents constitute a work based on |
|||
the Program (independent of having been made by running the |
|||
Program). Whether that is true depends on what the Program does. |
|||
GNU GENERAL PUBLIC LICENSE |
|||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
|||
|
|||
0. This License applies to any program or other work which contains |
|||
a notice placed by the copyright holder saying it may be distributed |
|||
under the terms of this General Public License. The "Program", below, |
|||
refers to any such program or work, and a "work based on the Program" |
|||
means either the Program or any derivative work under copyright law: |
|||
that is to say, a work containing the Program or a portion of it, |
|||
either verbatim or with modifications and/or translated into another |
|||
language. (Hereinafter, translation is included without limitation in |
|||
the term "modification".) Each licensee is addressed as "you". |
|||
|
|||
Activities other than copying, distribution and modification are not |
|||
covered by this License; they are outside its scope. The act of |
|||
running the Program is not restricted, and the output from the Program |
|||
is covered only if its contents constitute a work based on the |
|||
Program (independent of having been made by running the Program). |
|||
Whether that is true depends on what the Program does. |
|||
|
|||
1. You may copy and distribute verbatim copies of the Program's |
|||
source code as you receive it, in any medium, provided that you |
|||
conspicuously and appropriately publish on each copy an appropriate |
|||
copyright notice and disclaimer of warranty; keep intact all the |
|||
notices that refer to this License and to the absence of any |
|||
warranty; and give any other recipients of the Program a copy of |
|||
this License along with the Program. |
|||
source code as you receive it, in any medium, provided that you |
|||
conspicuously and appropriately publish on each copy an appropriate |
|||
copyright notice and disclaimer of warranty; keep intact all the |
|||
notices that refer to this License and to the absence of any warranty; |
|||
and give any other recipients of the Program a copy of this License |
|||
along with the Program. |
|||
|
|||
You may charge a fee for the physical act of transferring a copy, |
|||
and you may at your option offer warranty protection in exchange |
|||
for a fee. |
|||
You may charge a fee for the physical act of transferring a copy, and |
|||
you may at your option offer warranty protection in exchange for a fee. |
|||
|
|||
2. You may modify your copy or copies of the Program or any portion |
|||
of it, thus forming a work based on the Program, and copy and |
|||
distribute such modifications or work under the terms of Section 1 |
|||
above, provided that you also meet all of these conditions: |
|||
|
|||
a. You must cause the modified files to carry prominent notices |
|||
stating that you changed the files and the date of any change. |
|||
|
|||
b. You must cause any work that you distribute or publish, that |
|||
in whole or in part contains or is derived from the Program |
|||
or any part thereof, to be licensed as a whole at no charge |
|||
to all third parties under the terms of this License. |
|||
|
|||
c. If the modified program normally reads commands interactively |
|||
when run, you must cause it, when started running for such |
|||
interactive use in the most ordinary way, to print or display |
|||
an announcement including an appropriate copyright notice and |
|||
a notice that there is no warranty (or else, saying that you |
|||
provide a warranty) and that users may redistribute the |
|||
program under these conditions, and telling the user how to |
|||
view a copy of this License. (Exception: if the Program |
|||
itself is interactive but does not normally print such an |
|||
announcement, your work based on the Program is not required |
|||
to print an announcement.) |
|||
|
|||
These requirements apply to the modified work as a whole. If |
|||
identifiable sections of that work are not derived from the |
|||
Program, and can be reasonably considered independent and separate |
|||
works in themselves, then this License, and its terms, do not |
|||
apply to those sections when you distribute them as separate |
|||
works. But when you distribute the same sections as part of a |
|||
whole which is a work based on the Program, the distribution of |
|||
the whole must be on the terms of this License, whose permissions |
|||
for other licensees extend to the entire whole, and thus to each |
|||
and every part regardless of who wrote it. |
|||
|
|||
Thus, it is not the intent of this section to claim rights or |
|||
contest your rights to work written entirely by you; rather, the |
|||
intent is to exercise the right to control the distribution of |
|||
derivative or collective works based on the Program. |
|||
|
|||
In addition, mere aggregation of another work not based on the |
|||
Program with the Program (or with a work based on the Program) on |
|||
a volume of a storage or distribution medium does not bring the |
|||
other work under the scope of this License. |
|||
of it, thus forming a work based on the Program, and copy and |
|||
distribute such modifications or work under the terms of Section 1 |
|||
above, provided that you also meet all of these conditions: |
|||
|
|||
a) You must cause the modified files to carry prominent notices |
|||
stating that you changed the files and the date of any change. |
|||
|
|||
b) You must cause any work that you distribute or publish, that in |
|||
whole or in part contains or is derived from the Program or any |
|||
part thereof, to be licensed as a whole at no charge to all third |
|||
parties under the terms of this License. |
|||
|
|||
c) If the modified program normally reads commands interactively |
|||
when run, you must cause it, when started running for such |
|||
interactive use in the most ordinary way, to print or display an |
|||
announcement including an appropriate copyright notice and a |
|||
notice that there is no warranty (or else, saying that you provide |
|||
a warranty) and that users may redistribute the program under |
|||
these conditions, and telling the user how to view a copy of this |
|||
License. (Exception: if the Program itself is interactive but |
|||
does not normally print such an announcement, your work based on |
|||
the Program is not required to print an announcement.) |
|||
|
|||
These requirements apply to the modified work as a whole. If |
|||
identifiable sections of that work are not derived from the Program, |
|||
and can be reasonably considered independent and separate works in |
|||
themselves, then this License, and its terms, do not apply to those |
|||
sections when you distribute them as separate works. But when you |
|||
distribute the same sections as part of a whole which is a work based |
|||
on the Program, the distribution of the whole must be on the terms of |
|||
this License, whose permissions for other licensees extend to the |
|||
entire whole, and thus to each and every part regardless of who wrote it. |
|||
|
|||
Thus, it is not the intent of this section to claim rights or contest |
|||
your rights to work written entirely by you; rather, the intent is to |
|||
exercise the right to control the distribution of derivative or |
|||
collective works based on the Program. |
|||
|
|||
In addition, mere aggregation of another work not based on the Program |
|||
with the Program (or with a work based on the Program) on a volume of |
|||
a storage or distribution medium does not bring the other work under |
|||
the scope of this License. |
|||
|
|||
3. You may copy and distribute the Program (or a work based on it, |
|||
under Section 2) in object code or executable form under the terms |
|||
of Sections 1 and 2 above provided that you also do one of the |
|||
following: |
|||
|
|||
a. Accompany it with the complete corresponding machine-readable |
|||
source code, which must be distributed under the terms of |
|||
Sections 1 and 2 above on a medium customarily used for |
|||
software interchange; or, |
|||
|
|||
b. Accompany it with a written offer, valid for at least three |
|||
years, to give any third-party, for a charge no more than your |
|||
cost of physically performing source distribution, a complete |
|||
machine-readable copy of the corresponding source code, to be |
|||
distributed under the terms of Sections 1 and 2 above on a |
|||
medium customarily used for software interchange; or, |
|||
|
|||
c. Accompany it with the information you received as to the offer |
|||
to distribute corresponding source code. (This alternative is |
|||
allowed only for noncommercial distribution and only if you |
|||
received the program in object code or executable form with |
|||
such an offer, in accord with Subsection b above.) |
|||
|
|||
The source code for a work means the preferred form of the work for |
|||
making modifications to it. For an executable work, complete |
|||
source code means all the source code for all modules it contains, |
|||
plus any associated interface definition files, plus the scripts |
|||
used to control compilation and installation of the executable. |
|||
However, as a special exception, the source code distributed need |
|||
not include anything that is normally distributed (in either |
|||
source or binary form) with the major components (compiler, |
|||
kernel, and so on) of the operating system on which the executable |
|||
runs, unless that component itself accompanies the executable. |
|||
|
|||
If distribution of executable or object code is made by offering |
|||
access to copy from a designated place, then offering equivalent |
|||
access to copy the source code from the same place counts as |
|||
distribution of the source code, even though third parties are not |
|||
compelled to copy the source along with the object code. |
|||
under Section 2) in object code or executable form under the terms of |
|||
Sections 1 and 2 above provided that you also do one of the following: |
|||
|
|||
a) Accompany it with the complete corresponding machine-readable |
|||
source code, which must be distributed under the terms of Sections |
|||
1 and 2 above on a medium customarily used for software interchange; or, |
|||
|
|||
b) Accompany it with a written offer, valid for at least three |
|||
years, to give any third party, for a charge no more than your |
|||
cost of physically performing source distribution, a complete |
|||
machine-readable copy of the corresponding source code, to be |
|||
distributed under the terms of Sections 1 and 2 above on a medium |
|||
customarily used for software interchange; or, |
|||
|
|||
c) Accompany it with the information you received as to the offer |
|||
to distribute corresponding source code. (This alternative is |
|||
allowed only for noncommercial distribution and only if you |
|||
received the program in object code or executable form with such |
|||
an offer, in accord with Subsection b above.) |
|||
|
|||
The source code for a work means the preferred form of the work for |
|||
making modifications to it. For an executable work, complete source |
|||
code means all the source code for all modules it contains, plus any |
|||
associated interface definition files, plus the scripts used to |
|||
control compilation and installation of the executable. However, as a |
|||
special exception, the source code distributed need not include |
|||
anything that is normally distributed (in either source or binary |
|||
form) with the major components (compiler, kernel, and so on) of the |
|||
operating system on which the executable runs, unless that component |
|||
itself accompanies the executable. |
|||
|
|||
If distribution of executable or object code is made by offering |
|||
access to copy from a designated place, then offering equivalent |
|||
access to copy the source code from the same place counts as |
|||
distribution of the source code, even though third parties are not |
|||
compelled to copy the source along with the object code. |
|||
|
|||
4. You may not copy, modify, sublicense, or distribute the Program |
|||
except as expressly provided under this License. Any attempt |
|||
otherwise to copy, modify, sublicense or distribute the Program is |
|||
void, and will automatically terminate your rights under this |
|||
License. However, parties who have received copies, or rights, |
|||
from you under this License will not have their licenses |
|||
terminated so long as such parties remain in full compliance. |
|||
except as expressly provided under this License. Any attempt |
|||
otherwise to copy, modify, sublicense or distribute the Program is |
|||
void, and will automatically terminate your rights under this License. |
|||
However, parties who have received copies, or rights, from you under |
|||
this License will not have their licenses terminated so long as such |
|||
parties remain in full compliance. |
|||
|
|||
5. You are not required to accept this License, since you have not |
|||
signed it. However, nothing else grants you permission to modify |
|||
or distribute the Program or its derivative works. These actions |
|||
are prohibited by law if you do not accept this License. |
|||
Therefore, by modifying or distributing the Program (or any work |
|||
based on the Program), you indicate your acceptance of this |
|||
License to do so, and all its terms and conditions for copying, |
|||
distributing or modifying the Program or works based on it. |
|||
signed it. However, nothing else grants you permission to modify or |
|||
distribute the Program or its derivative works. These actions are |
|||
prohibited by law if you do not accept this License. Therefore, by |
|||
modifying or distributing the Program (or any work based on the |
|||
Program), you indicate your acceptance of this License to do so, and |
|||
all its terms and conditions for copying, distributing or modifying |
|||
the Program or works based on it. |
|||
|
|||
6. Each time you redistribute the Program (or any work based on the |
|||
Program), the recipient automatically receives a license from the |
|||
original licensor to copy, distribute or modify the Program |
|||
subject to these terms and conditions. You may not impose any |
|||
further restrictions on the recipients' exercise of the rights |
|||
granted herein. You are not responsible for enforcing compliance |
|||
by third parties to this License. |
|||
Program), the recipient automatically receives a license from the |
|||
original licensor to copy, distribute or modify the Program subject to |
|||
these terms and conditions. You may not impose any further |
|||
restrictions on the recipients' exercise of the rights granted herein. |
|||
You are not responsible for enforcing compliance by third parties to |
|||
this License. |
|||
|
|||
7. If, as a consequence of a court judgment or allegation of patent |
|||
infringement or for any other reason (not limited to patent |
|||
issues), conditions are imposed on you (whether by court order, |
|||
agreement or otherwise) that contradict the conditions of this |
|||
License, they do not excuse you from the conditions of this |
|||
License. If you cannot distribute so as to satisfy simultaneously |
|||
your obligations under this License and any other pertinent |
|||
obligations, then as a consequence you may not distribute the |
|||
Program at all. For example, if a patent license would not permit |
|||
royalty-free redistribution of the Program by all those who |
|||
receive copies directly or indirectly through you, then the only |
|||
way you could satisfy both it and this License would be to refrain |
|||
entirely from distribution of the Program. |
|||
|
|||
If any portion of this section is held invalid or unenforceable |
|||
under any particular circumstance, the balance of the section is |
|||
intended to apply and the section as a whole is intended to apply |
|||
in other circumstances. |
|||
|
|||
It is not the purpose of this section to induce you to infringe any |
|||
patents or other property right claims or to contest validity of |
|||
any such claims; this section has the sole purpose of protecting |
|||
the integrity of the free software distribution system, which is |
|||
implemented by public license practices. Many people have made |
|||
generous contributions to the wide range of software distributed |
|||
through that system in reliance on consistent application of that |
|||
system; it is up to the author/donor to decide if he or she is |
|||
willing to distribute software through any other system and a |
|||
licensee cannot impose that choice. |
|||
|
|||
This section is intended to make thoroughly clear what is believed |
|||
to be a consequence of the rest of this License. |
|||
infringement or for any other reason (not limited to patent issues), |
|||
conditions are imposed on you (whether by court order, agreement or |
|||
otherwise) that contradict the conditions of this License, they do not |
|||
excuse you from the conditions of this License. If you cannot |
|||
distribute so as to satisfy simultaneously your obligations under this |
|||
License and any other pertinent obligations, then as a consequence you |
|||
may not distribute the Program at all. For example, if a patent |
|||
license would not permit royalty-free redistribution of the Program by |
|||
all those who receive copies directly or indirectly through you, then |
|||
the only way you could satisfy both it and this License would be to |
|||
refrain entirely from distribution of the Program. |
|||
|
|||
If any portion of this section is held invalid or unenforceable under |
|||
any particular circumstance, the balance of the section is intended to |
|||
apply and the section as a whole is intended to apply in other |
|||
circumstances. |
|||
|
|||
It is not the purpose of this section to induce you to infringe any |
|||
patents or other property right claims or to contest validity of any |
|||
such claims; this section has the sole purpose of protecting the |
|||
integrity of the free software distribution system, which is |
|||
implemented by public license practices. Many people have made |
|||
generous contributions to the wide range of software distributed |
|||
through that system in reliance on consistent application of that |
|||
system; it is up to the author/donor to decide if he or she is willing |
|||
to distribute software through any other system and a licensee cannot |
|||
impose that choice. |
|||
|
|||
This section is intended to make thoroughly clear what is believed to |
|||
be a consequence of the rest of this License. |
|||
|
|||
8. If the distribution and/or use of the Program is restricted in |
|||
certain countries either by patents or by copyrighted interfaces, |
|||
the original copyright holder who places the Program under this |
|||
License may add an explicit geographical distribution limitation |
|||
excluding those countries, so that distribution is permitted only |
|||
in or among countries not thus excluded. In such case, this |
|||
License incorporates the limitation as if written in the body of |
|||
this License. |
|||
|
|||
9. The Free Software Foundation may publish revised and/or new |
|||
versions of the General Public License from time to time. Such |
|||
new versions will be similar in spirit to the present version, but |
|||
may differ in detail to address new problems or concerns. |
|||
|
|||
Each version is given a distinguishing version number. If the |
|||
Program specifies a version number of this License which applies |
|||
to it and "any later version", you have the option of following |
|||
the terms and conditions either of that version or of any later |
|||
version published by the Free Software Foundation. If the Program |
|||
does not specify a version number of this License, you may choose |
|||
any version ever published by the Free Software Foundation. |
|||
|
|||
10. If you wish to incorporate parts of the Program into other free |
|||
programs whose distribution conditions are different, write to the |
|||
author to ask for permission. For software which is copyrighted |
|||
by the Free Software Foundation, write to the Free Software |
|||
Foundation; we sometimes make exceptions for this. Our decision |
|||
will be guided by the two goals of preserving the free status of |
|||
all derivatives of our free software and of promoting the sharing |
|||
and reuse of software generally. |
|||
|
|||
NO WARRANTY |
|||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO |
|||
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE |
|||
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT |
|||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT |
|||
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT |
|||
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND |
|||
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE |
|||
QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
|||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY |
|||
SERVICING, REPAIR OR CORRECTION. |
|||
|
|||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN |
|||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY |
|||
MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE |
|||
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, |
|||
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR |
|||
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF |
|||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU |
|||
OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY |
|||
OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN |
|||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
|||
|
|||
END OF TERMS AND CONDITIONS |
|||
How to Apply These Terms to Your New Programs |
|||
============================================= |
|||
|
|||
If you develop a new program, and you want it to be of the greatest |
|||
certain countries either by patents or by copyrighted interfaces, the |
|||
original copyright holder who places the Program under this License |
|||
may add an explicit geographical distribution limitation excluding |
|||
those countries, so that distribution is permitted only in or among |
|||
countries not thus excluded. In such case, this License incorporates |
|||
the limitation as if written in the body of this License. |
|||
|
|||
9. The Free Software Foundation may publish revised and/or new versions |
|||
of the General Public License from time to time. Such new versions will |
|||
be similar in spirit to the present version, but may differ in detail to |
|||
address new problems or concerns. |
|||
|
|||
Each version is given a distinguishing version number. If the Program |
|||
specifies a version number of this License which applies to it and "any |
|||
later version", you have the option of following the terms and conditions |
|||
either of that version or of any later version published by the Free |
|||
Software Foundation. If the Program does not specify a version number of |
|||
this License, you may choose any version ever published by the Free Software |
|||
Foundation. |
|||
|
|||
10. If you wish to incorporate parts of the Program into other free |
|||
programs whose distribution conditions are different, write to the author |
|||
to ask for permission. For software which is copyrighted by the Free |
|||
Software Foundation, write to the Free Software Foundation; we sometimes |
|||
make exceptions for this. Our decision will be guided by the two goals |
|||
of preserving the free status of all derivatives of our free software and |
|||
of promoting the sharing and reuse of software generally. |
|||
|
|||
NO WARRANTY |
|||
|
|||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
|||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
|||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
|||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
|||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
|||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
|||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
|||
REPAIR OR CORRECTION. |
|||
|
|||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
|||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
|||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
|||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
|||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
|||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
|||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
|||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
|||
POSSIBILITY OF SUCH DAMAGES. |
|||
|
|||
END OF TERMS AND CONDITIONS |
|||
|
|||
How to Apply These Terms to Your New Programs |
|||
|
|||
If you develop a new program, and you want it to be of the greatest |
|||
possible use to the public, the best way to achieve this is to make it |
|||
free software which everyone can redistribute and change under these |
|||
terms. |
|||
free software which everyone can redistribute and change under these terms. |
|||
|
|||
To do so, attach the following notices to the program. It is safest to |
|||
attach them to the start of each source file to most effectively convey |
|||
the exclusion of warranty; and each file should have at least the |
|||
"copyright" line and a pointer to where the full notice is found. |
|||
To do so, attach the following notices to the program. It is safest |
|||
to attach them to the start of each source file to most effectively |
|||
convey the exclusion of warranty; and each file should have at least |
|||
the "copyright" line and a pointer to where the full notice is found. |
|||
|
|||
ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES. |
|||
Copyright (C) YYYY NAME OF AUTHOR |
|||
<one line to give the program's name and a brief idea of what it does.> |
|||
Copyright (C) <year> <name of author> |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License |
|||
along with this program; if not, write to the Free Software |
|||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|||
You should have received a copy of the GNU General Public License along |
|||
with this program; if not, write to the Free Software Foundation, Inc., |
|||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
|||
|
|||
Also add information on how to contact you by electronic and paper mail. |
|||
|
|||
If the program is interactive, make it output a short notice like this |
|||
when it starts in an interactive mode: |
|||
|
|||
Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR |
|||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
|||
This is free software, and you are welcome to redistribute it |
|||
under certain conditions; type `show c' for details. |
|||
Gnomovision version 69, Copyright (C) year name of author |
|||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
|||
This is free software, and you are welcome to redistribute it |
|||
under certain conditions; type `show c' for details. |
|||
|
|||
The hypothetical commands `show w' and `show c' should show the |
|||
appropriate parts of the General Public License. Of course, the |
|||
commands you use may be called something other than `show w' and `show |
|||
c'; they could even be mouse-clicks or menu items--whatever suits your |
|||
program. |
|||
The hypothetical commands `show w' and `show c' should show the appropriate |
|||
parts of the General Public License. Of course, the commands you use may |
|||
be called something other than `show w' and `show c'; they could even be |
|||
mouse-clicks or menu items--whatever suits your program. |
|||
|
|||
You should also get your employer (if you work as a programmer) or your |
|||
school, if any, to sign a "copyright disclaimer" for the program, if |
|||
necessary. Here is a sample; alter the names: |
|||
|
|||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
|||
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
|||
|
|||
SIGNATURE OF TY COON, 1 April 1989 |
|||
Ty Coon, President of Vice |
|||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
|||
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
|||
|
|||
This General Public License does not permit incorporating your program |
|||
into proprietary programs. If your program is a subroutine library, |
|||
you may consider it more useful to permit linking proprietary |
|||
applications with the library. If this is what you want to do, use the |
|||
GNU Library General Public License instead of this License. |
|||
<signature of Ty Coon>, 1 April 1989 |
|||
Ty Coon, President of Vice |
|||
|
|||
This General Public License does not permit incorporating your program into |
|||
proprietary programs. If your program is a subroutine library, you may |
|||
consider it more useful to permit linking proprietary applications with the |
|||
library. If this is what you want to do, use the GNU Lesser General |
|||
Public License instead of this License. |
|||
@ -0,0 +1,25 @@ |
|||
# Routine to be called by t/view.inc |
|||
# |
|||
# The variable $after_select must be set before calling this routine. |
|||
|
|||
eval CREATE VIEW v1 AS SELECT $after_select; |
|||
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'; |
|||
# |
|||
# Extract the VIEW's SELECT from INFORMATION_SCHEMA.VIEWS |
|||
let $query1 = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`; |
|||
# |
|||
# Extract the VIEW's SELECT from SHOW CREATE VIEW |
|||
# SHOW CREATE VIEW v1 |
|||
# View Create View character_set_client collation_connection |
|||
# v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select '<--- ..... |
|||
let $value= query_get_value(SHOW CREATE VIEW v1, Create View, 1); |
|||
let $query2 = `SELECT SUBSTR("$value",INSTR("$value",' as select ') + CHAR_LENGTH(' as '))`; |
|||
DROP VIEW v1; |
|||
|
|||
# Recreate the view based on SELECT from INFORMATION_SCHEMA.VIEWS |
|||
eval CREATE VIEW v1 AS $query1; |
|||
DROP VIEW v1; |
|||
# Recreate the view based on SHOW CREATE VIEW |
|||
eval CREATE VIEW v1 AS $query2; |
|||
DROP VIEW v1; |
|||
|
|||
@ -0,0 +1,111 @@ |
|||
# |
|||
# Bug#40277 SHOW CREATE VIEW returns invalid SQL |
|||
# Bug#41999 SHOW CREATE VIEW returns invalid SQL if subquery is used in SELECT list |
|||
# |
|||
# 65 characters exceed the maximum length of a column identifier. The system cannot derive the name from statement. |
|||
# Constant with length = 65 . Expect to get the identifier 'Name_exp_1'. |
|||
CREATE VIEW v1 AS SELECT '<--- 65 char including the arrows --->'; |
|||
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'; |
|||
COLUMN_NAME |
|||
Name_exp_1 |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select '<--- 65 char including the arrows --->' AS `Name_exp_1`; |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select '<--- 65 char including the arrows --->' AS `Name_exp_1`; |
|||
DROP VIEW v1; |
|||
# Subquery with length = 65 . Expect to get the identifier 'Name_exp_1'. |
|||
# Attention: Identifier for the column within the subquery will be not generated. |
|||
CREATE VIEW v1 AS SELECT (SELECT '<--- 54 char including the arrows (+ 11 outside) -->'); |
|||
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'; |
|||
COLUMN_NAME |
|||
Name_exp_1 |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select (select '<--- 54 char including the arrows (+ 11 outside) -->') AS `Name_exp_1`; |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select (select '<--- 54 char including the arrows (+ 11 outside) -->') AS `Name_exp_1`; |
|||
DROP VIEW v1; |
|||
# ----------------------------------------------------------------------------------------------------------------- |
|||
# 64 characters are the maximum length of a column identifier. The system can derive the name from the statement. |
|||
CREATE VIEW v1 AS SELECT '<--- 64 char including the arrows --->'; |
|||
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'; |
|||
COLUMN_NAME |
|||
<--- 64 char including the arrows ---> |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select '<--- 64 char including the arrows --->' AS `<--- 64 char including the arrows --->`; |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select '<--- 64 char including the arrows --->' AS `<--- 64 char including the arrows --->`; |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS SELECT (SELECT '<--- 53 char including the arrows (+ 11 outside) --->'); |
|||
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'; |
|||
COLUMN_NAME |
|||
(SELECT '<--- 53 char including the arrows (+ 11 outside) --->') |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select (select '<--- 53 char including the arrows (+ 11 outside) --->') AS `(SELECT '<--- 53 char including the arrows (+ 11 outside) --->')`; |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select (select '<--- 53 char including the arrows (+ 11 outside) --->') AS `(SELECT '<--- 53 char including the arrows (+ 11 outside) --->')`; |
|||
DROP VIEW v1; |
|||
# ----------------------------------------------------------------------------------------------------------------- |
|||
# Identifiers must not have trailing spaces. The system cannot derive the name from a constant with trailing space. |
|||
# Generated identifiers have at their end the position within the select column list. |
|||
# 'c2 ' -> 'Name_exp_1' , ' c4 ' -> 'Name_exp_2' |
|||
CREATE VIEW v1 AS SELECT 'c1', 'c2 ', ' c3', ' c4 '; |
|||
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'; |
|||
COLUMN_NAME |
|||
c1 |
|||
Name_exp_2 |
|||
c3 |
|||
Name_exp_4 |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select 'c1' AS `c1`,'c2 ' AS `Name_exp_2`,' c3' AS `c3`,' c4 ' AS `Name_exp_4`; |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select 'c1' AS `c1`,'c2 ' AS `Name_exp_2`,' c3' AS `c3`,' c4 ' AS `Name_exp_4`; |
|||
DROP VIEW v1; |
|||
# |
|||
# Bug#40277 SHOW CREATE VIEW returns invalid SQL |
|||
# |
|||
DROP VIEW IF EXISTS v1; |
|||
DROP TABLE IF EXISTS t1,t2; |
|||
# Column name exceeds the maximum length. |
|||
CREATE VIEW v1 AS SELECT '0000000000 1111111111 2222222222 3333333333 4444444444 5555555555'; |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select '0000000000 1111111111 2222222222 3333333333 4444444444 5555555555' AS `Name_exp_1`; |
|||
DROP VIEW v1; |
|||
# Column names with leading trailing spaces. |
|||
CREATE VIEW v1 AS SELECT 'c1', 'c2 ', ' c3', ' c4 '; |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select 'c1' AS `c1`,'c2 ' AS `Name_exp_2`,' c3' AS `c3`,' c4 ' AS `Name_exp_4`; |
|||
DROP VIEW v1; |
|||
# Column name conflicts with a auto-generated one. |
|||
CREATE VIEW v1 AS SELECT 'c1', 'c2 ', ' c3', ' c4 ', 'Name_exp_2'; |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select 'c1' AS `c1`,'c2 ' AS `Name_exp_2`,' c3' AS `c3`,' c4 ' AS `Name_exp_4`,'Name_exp_2' AS `My_exp_Name_exp_2`; |
|||
DROP VIEW v1; |
|||
# Invalid conlumn name in subquery. |
|||
CREATE VIEW v1 AS SELECT (SELECT ' c1 '); |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select (select ' c1 ') AS `(SELECT ' c1 ')`; |
|||
DROP VIEW v1; |
|||
CREATE TABLE t1(a INT); |
|||
CREATE TABLE t2 LIKE t1; |
|||
# Test alias in subquery |
|||
CREATE VIEW v1 AS SELECT a FROM t1 WHERE EXISTS (SELECT 1 FROM t2 AS b WHERE b.a = 0); |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select `test`.`t1`.`a` AS `a` from `test`.`t1` where exists(select 1 from `test`.`t2` `b` where (`b`.`a` = 0)); |
|||
DROP VIEW v1; |
|||
# Test column alias in subquery |
|||
CREATE VIEW v1 AS SELECT a FROM t1 WHERE EXISTS (SELECT a AS alias FROM t1 GROUP BY alias); |
|||
SHOW CREATE VIEW v1; |
|||
View Create View character_set_client collation_connection |
|||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where exists(select `t1`.`a` AS `alias` from `t1` group by `t1`.`a`) latin1 latin1_swedish_ci |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select `test`.`t1`.`a` AS `a` from `test`.`t1` where exists(select `test`.`t1`.`a` AS `alias` from `test`.`t1` group by `test`.`t1`.`a`); |
|||
DROP VIEW v1; |
|||
# Alias as the expression column name. |
|||
CREATE VIEW v1 AS SELECT a FROM t1 WHERE EXISTS (SELECT ' a ' AS alias FROM t1 GROUP BY alias); |
|||
SHOW CREATE VIEW v1; |
|||
View Create View character_set_client collation_connection |
|||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where exists(select ' a ' AS `alias` from `t1` group by ' a ') latin1 latin1_swedish_ci |
|||
DROP VIEW v1; |
|||
CREATE VIEW v1 AS select `test`.`t1`.`a` AS `a` from `test`.`t1` where exists(select ' a ' AS `alias` from `test`.`t1` group by ' a '); |
|||
DROP VIEW v1; |
|||
DROP TABLE t1, t2; |
|||
@ -0,0 +1,92 @@ |
|||
--echo # |
|||
--echo # Bug#40277 SHOW CREATE VIEW returns invalid SQL |
|||
--echo # Bug#41999 SHOW CREATE VIEW returns invalid SQL if subquery is used in SELECT list |
|||
--echo # |
|||
|
|||
--echo # 65 characters exceed the maximum length of a column identifier. The system cannot derive the name from statement. |
|||
--echo # Constant with length = 65 . Expect to get the identifier 'Name_exp_1'. |
|||
let $after_select= '<--- 65 char including the arrows --->'; |
|||
--source include/view_alias.inc |
|||
--echo # Subquery with length = 65 . Expect to get the identifier 'Name_exp_1'. |
|||
--echo # Attention: Identifier for the column within the subquery will be not generated. |
|||
let $after_select= (SELECT '<--- 54 char including the arrows (+ 11 outside) -->'); |
|||
--source include/view_alias.inc |
|||
--echo # ----------------------------------------------------------------------------------------------------------------- |
|||
# |
|||
--echo # 64 characters are the maximum length of a column identifier. The system can derive the name from the statement. |
|||
let $after_select= '<--- 64 char including the arrows --->'; |
|||
--source include/view_alias.inc |
|||
let $after_select= (SELECT '<--- 53 char including the arrows (+ 11 outside) --->'); |
|||
--source include/view_alias.inc |
|||
--echo # ----------------------------------------------------------------------------------------------------------------- |
|||
# |
|||
--echo # Identifiers must not have trailing spaces. The system cannot derive the name from a constant with trailing space. |
|||
--echo # Generated identifiers have at their end the position within the select column list. |
|||
--echo # 'c2 ' -> 'Name_exp_1' , ' c4 ' -> 'Name_exp_2' |
|||
let $after_select= 'c1', 'c2 ', ' c3', ' c4 '; |
|||
--source include/view_alias.inc |
|||
|
|||
--echo # |
|||
--echo # Bug#40277 SHOW CREATE VIEW returns invalid SQL |
|||
--echo # |
|||
|
|||
--disable_warnings |
|||
DROP VIEW IF EXISTS v1; |
|||
DROP TABLE IF EXISTS t1,t2; |
|||
--enable_warnings |
|||
|
|||
--echo # Column name exceeds the maximum length. |
|||
CREATE VIEW v1 AS SELECT '0000000000 1111111111 2222222222 3333333333 4444444444 5555555555'; |
|||
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`; |
|||
DROP VIEW v1; |
|||
eval CREATE VIEW v1 AS $query; |
|||
DROP VIEW v1; |
|||
|
|||
--echo # Column names with leading trailing spaces. |
|||
CREATE VIEW v1 AS SELECT 'c1', 'c2 ', ' c3', ' c4 '; |
|||
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`; |
|||
DROP VIEW v1; |
|||
eval CREATE VIEW v1 AS $query; |
|||
DROP VIEW v1; |
|||
|
|||
--echo # Column name conflicts with a auto-generated one. |
|||
CREATE VIEW v1 AS SELECT 'c1', 'c2 ', ' c3', ' c4 ', 'Name_exp_2'; |
|||
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`; |
|||
DROP VIEW v1; |
|||
eval CREATE VIEW v1 AS $query; |
|||
DROP VIEW v1; |
|||
|
|||
--echo # Invalid conlumn name in subquery. |
|||
CREATE VIEW v1 AS SELECT (SELECT ' c1 '); |
|||
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`; |
|||
DROP VIEW v1; |
|||
eval CREATE VIEW v1 AS $query; |
|||
DROP VIEW v1; |
|||
|
|||
CREATE TABLE t1(a INT); |
|||
CREATE TABLE t2 LIKE t1; |
|||
|
|||
--echo # Test alias in subquery |
|||
CREATE VIEW v1 AS SELECT a FROM t1 WHERE EXISTS (SELECT 1 FROM t2 AS b WHERE b.a = 0); |
|||
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`; |
|||
DROP VIEW v1; |
|||
eval CREATE VIEW v1 AS $query; |
|||
DROP VIEW v1; |
|||
|
|||
--echo # Test column alias in subquery |
|||
CREATE VIEW v1 AS SELECT a FROM t1 WHERE EXISTS (SELECT a AS alias FROM t1 GROUP BY alias); |
|||
SHOW CREATE VIEW v1; |
|||
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`; |
|||
DROP VIEW v1; |
|||
eval CREATE VIEW v1 AS $query; |
|||
DROP VIEW v1; |
|||
|
|||
--echo # Alias as the expression column name. |
|||
CREATE VIEW v1 AS SELECT a FROM t1 WHERE EXISTS (SELECT ' a ' AS alias FROM t1 GROUP BY alias); |
|||
SHOW CREATE VIEW v1; |
|||
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`; |
|||
DROP VIEW v1; |
|||
eval CREATE VIEW v1 AS $query; |
|||
DROP VIEW v1; |
|||
|
|||
DROP TABLE t1, t2; |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue