mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Update some requirements marks to conform with improvements
in the documentation. FossilOrigin-Name: be1acb610f7e594b417dd8409b7a7aa8f3af5f77
This commit is contained in:
@ -333,9 +333,9 @@ do_select_tests e_select-1.1 {
|
||||
6 "SELECT count(*) WHERE 1" {1}
|
||||
}
|
||||
|
||||
# EVIDENCE-OF: R-48114-33255 If there is only a single table in the
|
||||
# join-source following the FROM clause, then the input data used by the
|
||||
# SELECT statement is the contents of the named table.
|
||||
# EVIDENCE-OF: R-45424-07352 If there is only a single table or subquery
|
||||
# in the FROM clause, then the input data used by the SELECT statement
|
||||
# is the contents of the named table.
|
||||
#
|
||||
# The results of the SELECT queries suggest that they are operating on the
|
||||
# contents of the table 'xx'.
|
||||
@ -357,10 +357,10 @@ do_select_tests e_select-1.2 {
|
||||
3 "SELECT sum(x), sum(y) FROM xx" {-17.89 -16.87}
|
||||
}
|
||||
|
||||
# EVIDENCE-OF: R-23593-12456 If there is more than one table specified
|
||||
# as part of the join-source following the FROM keyword, then the
|
||||
# contents of each named table are joined into a single dataset for the
|
||||
# simple SELECT statement to operate on.
|
||||
# EVIDENCE-OF: R-28355-09804 If there is more than one table or subquery
|
||||
# in FROM clause then the contents of all tables and/or subqueries are
|
||||
# joined into a single dataset for the simple SELECT statement to
|
||||
# operate on.
|
||||
#
|
||||
# There are more detailed tests for subsequent requirements that add
|
||||
# more detail to this idea. We just add a single test that shows that
|
||||
@ -383,10 +383,10 @@ do_select_tests e_select-1.3 {
|
||||
# of cartesian joins in the SELECT documentation is consistent with SQLite.
|
||||
# In doing so, we test the following three requirements as a side-effect:
|
||||
#
|
||||
# EVIDENCE-OF: R-46122-14930 If the join-op is "CROSS JOIN", "INNER
|
||||
# JOIN", "JOIN" or a comma (",") and there is no ON or USING clause,
|
||||
# then the result of the join is simply the cartesian product of the
|
||||
# left and right-hand datasets.
|
||||
# EVIDENCE-OF: R-49872-03192 If the join-operator is "CROSS JOIN",
|
||||
# "INNER JOIN", "JOIN" or a comma (",") and there is no ON or USING
|
||||
# clause, then the result of the join is simply the cartesian product of
|
||||
# the left and right-hand datasets.
|
||||
#
|
||||
# The tests are built on this assertion. Really, they test that the output
|
||||
# of a CROSS JOIN, JOIN, INNER JOIN or "," join matches the expected result
|
||||
@ -513,11 +513,10 @@ do_select_tests e_select-1.4.5 [list \
|
||||
4 { SELECT * FROM t1 AS y INNER JOIN t1 AS x } $t1_cross_t1 \
|
||||
]
|
||||
|
||||
|
||||
# EVIDENCE-OF: R-22775-56496 If there is an ON clause specified, then
|
||||
# the ON expression is evaluated for each row of the cartesian product
|
||||
# as a boolean expression. All rows for which the expression evaluates
|
||||
# to false are excluded from the dataset.
|
||||
# EVIDENCE-OF: R-38465-03616 If there is an ON clause then the ON
|
||||
# expression is evaluated for each row of the cartesian product as a
|
||||
# boolean expression. Only rows for which the expression evaluates to
|
||||
# true are included from the dataset.
|
||||
#
|
||||
foreach {tn select res} [list \
|
||||
1 { SELECT * FROM t1 %JOIN% t2 ON (1) } $t1_cross_t2 \
|
||||
@ -540,9 +539,9 @@ foreach {tn select res} [list \
|
||||
do_join_test e_select-1.3.$tn $select $res
|
||||
}
|
||||
|
||||
# EVIDENCE-OF: R-63358-54862 If there is a USING clause specified as
|
||||
# part of the join-constraint, then each of the column names specified
|
||||
# must exist in the datasets to both the left and right of the join-op.
|
||||
# EVIDENCE-OF: R-49933-05137 If there is a USING clause then each of the
|
||||
# column names specified must exist in the datasets to both the left and
|
||||
# right of the join-operator.
|
||||
#
|
||||
do_select_tests e_select-1.4 -error {
|
||||
cannot join using column %s - column not present in both tables
|
||||
@ -552,10 +551,10 @@ do_select_tests e_select-1.4 -error {
|
||||
3 { SELECT * FROM t3, (SELECT a AS b, b AS c FROM t1) USING (a) } "a"
|
||||
}
|
||||
|
||||
# EVIDENCE-OF: R-55987-04584 For each pair of namesake columns, the
|
||||
# EVIDENCE-OF: R-22776-52830 For each pair of named columns, the
|
||||
# expression "lhs.X = rhs.X" is evaluated for each row of the cartesian
|
||||
# product as a boolean expression. All rows for which one or more of the
|
||||
# expressions evaluates to false are excluded from the result set.
|
||||
# product as a boolean expression. Only rows for which all such
|
||||
# expressions evaluates to true are included from the result set.
|
||||
#
|
||||
do_select_tests e_select-1.5 {
|
||||
1 { SELECT * FROM t1, t3 USING (a) } {a one 1 b two 2}
|
||||
@ -566,8 +565,8 @@ do_select_tests e_select-1.5 {
|
||||
# USING clause, the normal rules for handling affinities, collation
|
||||
# sequences and NULL values in comparisons apply.
|
||||
#
|
||||
# EVIDENCE-OF: R-35466-18578 The column from the dataset on the
|
||||
# left-hand side of the join operator is considered to be on the
|
||||
# EVIDENCE-OF: R-38422-04402 The column from the dataset on the
|
||||
# left-hand side of the join-operator is considered to be on the
|
||||
# left-hand side of the comparison operator (=) for the purposes of
|
||||
# collation sequence and affinity precedence.
|
||||
#
|
||||
@ -622,10 +621,9 @@ foreach {tn select res} {
|
||||
} {
|
||||
do_join_test e_select-1.7.$tn $select $res
|
||||
}
|
||||
|
||||
# EVIDENCE-OF: R-41434-12448 If the join-op is a "LEFT JOIN" or "LEFT
|
||||
# OUTER JOIN", then after the ON or USING filtering clauses have been
|
||||
# applied, an extra row is added to the output for each row in the
|
||||
# EVIDENCE-OF: R-42531-52874 If the join-operator is a "LEFT JOIN" or
|
||||
# "LEFT OUTER JOIN", then after the ON or USING filtering clauses have
|
||||
# been applied, an extra row is added to the output for each row in the
|
||||
# original left-hand input dataset that corresponds to no rows at all in
|
||||
# the composite dataset (if any).
|
||||
#
|
||||
@ -660,8 +658,8 @@ do_select_tests e_select-1.9 {
|
||||
2b "SELECT * FROM t7 LEFT JOIN t8 USING (a)" {x ex 24 abc 24 y why 25 {} {}}
|
||||
}
|
||||
|
||||
# EVIDENCE-OF: R-01809-52134 If the NATURAL keyword is added to any of
|
||||
# the join-ops, then an implicit USING clause is added to the
|
||||
# EVIDENCE-OF: R-04932-55942 If the NATURAL keyword is in the
|
||||
# join-operator then an implicit USING clause is added to the
|
||||
# join-constraints. The implicit USING clause contains each of the
|
||||
# column names that appear in both the left and right-hand input
|
||||
# datasets.
|
||||
|
Reference in New Issue
Block a user