diff options
author | joerg@mysql.com <> | 2004-10-21 17:47:05 +0200 |
---|---|---|
committer | joerg@mysql.com <> | 2004-10-21 17:47:05 +0200 |
commit | a77d91e82e0dbd0429a715c8ab6a334f941b8d9b (patch) | |
tree | 0b2fab8e59ca0624d5e00d3e03c13aa45ca018f0 /mysql-test | |
parent | 701b646374332bb552c5314d3cc535024decee78 (diff) | |
parent | 61ca493a8dab37e485c4293376f92f984f1807c1 (diff) | |
download | mariadb-git-a77d91e82e0dbd0429a715c8ab6a334f941b8d9b.tar.gz |
Merge mysql.com:/M41/mysql-4.1 into mysql.com:/M41/push-4.1
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/ps_10nestset.result | 19 | ||||
-rw-r--r-- | mysql-test/t/ps_10nestset.test | 35 | ||||
-rw-r--r-- | mysql-test/t/ps_11bugs.test | 2 |
3 files changed, 31 insertions, 25 deletions
diff --git a/mysql-test/r/ps_10nestset.result b/mysql-test/r/ps_10nestset.result index 10f0a741b54..68f58a03674 100644 --- a/mysql-test/r/ps_10nestset.result +++ b/mysql-test/r/ps_10nestset.result @@ -1,14 +1,11 @@ -use test; -drop table if exists personnel; -Warnings: -Note 1051 Unknown table 'personnel' -create table personnel ( +drop table if exists t1; +create table t1 ( id INTEGER AUTO_INCREMENT PRIMARY KEY, emp CHAR(10) NOT NULL, salary DECIMAL(6,2) NOT NULL, l INTEGER NOT NULL, r INTEGER NOT NULL); -prepare st_ins from 'insert into personnel set emp = ?, salary = ?, l = ?, r = ?'; +prepare st_ins from 'insert into t1 set emp = ?, salary = ?, l = ?, r = ?'; set @arg_nam= 'Jerry'; set @arg_sal= 1000; set @arg_l= 1; @@ -39,7 +36,7 @@ set @arg_sal= 600; set @arg_l= 9; set @arg_r= 10; execute st_ins using @arg_nam, @arg_sal, @arg_l, @arg_r ; -select * from personnel; +select * from t1; id emp salary l r 1 Jerry 1000.00 1 12 2 Bert 900.00 2 3 @@ -47,8 +44,8 @@ id emp salary l r 4 Donna 800.00 5 6 5 Eddie 700.00 7 8 6 Fred 600.00 9 10 -prepare st_raise_base from 'update personnel set salary = salary * ( 1 + ? ) where r - l = 1'; -prepare st_raise_mgr from 'update personnel set salary = salary + ? where r - l > 1'; +prepare st_raise_base from 'update t1 set salary = salary * ( 1 + ? ) where r - l = 1'; +prepare st_raise_mgr from 'update t1 set salary = salary + ? where r - l > 1'; set @arg_percent= .10; set @arg_amount= 100; execute st_raise_base using @arg_percent; @@ -57,7 +54,7 @@ execute st_raise_base using @arg_percent; execute st_raise_mgr using @arg_amount; execute st_raise_base using @arg_percent; execute st_raise_mgr using @arg_amount; -select * from personnel; +select * from t1; id emp salary l r 1 Jerry 1300.00 1 12 2 Bert 1197.90 2 3 @@ -65,4 +62,4 @@ id emp salary l r 4 Donna 1064.80 5 6 5 Eddie 931.70 7 8 6 Fred 798.60 9 10 -drop table personnel; +drop table t1; diff --git a/mysql-test/t/ps_10nestset.test b/mysql-test/t/ps_10nestset.test index 2c6009af9de..d2adaca689e 100644 --- a/mysql-test/t/ps_10nestset.test +++ b/mysql-test/t/ps_10nestset.test @@ -8,28 +8,29 @@ # Source: http://kris.koehntopp.de/artikel/sql-self-references (dated 1999) # Source: http://dbmsmag.com/9603d06.html (dated 1996) -use test; - -drop table if exists personnel; +--disable_warnings +drop table if exists t1; +--enable_warnings # "Nested Set": This table represents an employee list with a hierarchy tree. # The tree is not modeled by "parent" links but rather by showing the "left" # and "right" border of any person's "region". By convention, "l" < "r". # As it is a tree, these "regions" of two persons A and B are either disjoint, -# or A's region is completely contained in B's (B is A's boss), or vice versa. -# See the references for more info. +# or A's region is completely contained in B's (B.l < A.l < A.r < B.r: +# B is A's boss), or vice versa. +# Any other overlaps violate the model. See the references for more info. -create table personnel ( +create table t1 ( id INTEGER AUTO_INCREMENT PRIMARY KEY, emp CHAR(10) NOT NULL, salary DECIMAL(6,2) NOT NULL, l INTEGER NOT NULL, r INTEGER NOT NULL); -prepare st_ins from 'insert into personnel set emp = ?, salary = ?, l = ?, r = ?'; +prepare st_ins from 'insert into t1 set emp = ?, salary = ?, l = ?, r = ?'; # Initial employee list: -# Jerry ( Bert ( ) Chuck ( Donna ( ) Eddie ( ) Fred ( ) ) ) +# Jerry ( Bert () Chuck ( Donna () Eddie () Fred () ) ) set @arg_nam= 'Jerry'; set @arg_sal= 1000; set @arg_l= 1; set @arg_r= 12; execute st_ins using @arg_nam, @arg_sal, @arg_l, @arg_r ; set @arg_nam= 'Bert'; set @arg_sal= 900; set @arg_l= 2; set @arg_r= 3; @@ -43,11 +44,11 @@ execute st_ins using @arg_nam, @arg_sal, @arg_l, @arg_r ; set @arg_nam= 'Fred'; set @arg_sal= 600; set @arg_l= 9; set @arg_r= 10; execute st_ins using @arg_nam, @arg_sal, @arg_l, @arg_r ; -select * from personnel; +select * from t1; # Three successive raises, each one is 100 units for managers, 10 percent for others. -prepare st_raise_base from 'update personnel set salary = salary * ( 1 + ? ) where r - l = 1'; -prepare st_raise_mgr from 'update personnel set salary = salary + ? where r - l > 1'; +prepare st_raise_base from 'update t1 set salary = salary * ( 1 + ? ) where r - l = 1'; +prepare st_raise_mgr from 'update t1 set salary = salary + ? where r - l > 1'; let $1= 3; set @arg_percent= .10; set @arg_amount= 100; @@ -58,6 +59,14 @@ while ($1) dec $1; } -select * from personnel; +select * from t1; + +# Waiting for the resolution of bug#6138 +# # Now, increase salary to a multiple of 50 +# prepare st_round from 'update t1 set salary = salary + ? - ( salary MOD ? )'; +# set @arg_round= 50; +# execute st_round using @arg_round, @arg_round; +# +# select * from t1; -drop table personnel; +drop table t1; diff --git a/mysql-test/t/ps_11bugs.test b/mysql-test/t/ps_11bugs.test index d0aeaf265bb..5945b140645 100644 --- a/mysql-test/t/ps_11bugs.test +++ b/mysql-test/t/ps_11bugs.test @@ -97,7 +97,7 @@ drop table t1; # end of bug#1644 -# bug#1677: Prepared statement two-table join returns no rows when one is expected +# bug#1676: Prepared statement two-table join returns no rows when one is expected create table t1( cola varchar(50) not null, |