Index: third_party/sqlite/sqlite-src-3080704/test/tkt1443.test |
diff --git a/third_party/sqlite/sqlite-src-3080704/test/tkt1443.test b/third_party/sqlite/sqlite-src-3080704/test/tkt1443.test |
deleted file mode 100644 |
index 0f55437bcaa61b22d05ec7b2748dd674db66ba13..0000000000000000000000000000000000000000 |
--- a/third_party/sqlite/sqlite-src-3080704/test/tkt1443.test |
+++ /dev/null |
@@ -1,180 +0,0 @@ |
-# 2005 September 17 |
-# |
-# The author disclaims copyright to this source code. In place of |
-# a legal notice, here is a blessing: |
-# |
-# May you do good and not evil. |
-# May you find forgiveness for yourself and forgive others. |
-# May you share freely, never taking more than you give. |
-# |
-#*********************************************************************** |
-# This file implements regression tests for SQLite library. |
-# |
-# This file implements tests to verify that ticket #1433 has been |
-# fixed. |
-# |
-# The problem in ticket #1433 was that the dependencies on the right-hand |
-# side of an IN operator were not being checked correctly. So in an |
-# expression of the form: |
-# |
-# t1.x IN (1,t2.b,3) |
-# |
-# the optimizer was missing the fact that the right-hand side of the IN |
-# depended on table t2. It was checking dependencies based on the |
-# Expr.pRight field rather than Expr.pList and Expr.pSelect. |
-# |
-# Such a bug could be verifed using a less elaborate test case. But |
-# this test case (from the original bug poster) exercises so many different |
-# parts of the system all at once, that it seemed like a good one to |
-# include in the test suite. |
-# |
-# NOTE: Yes, in spite of the name of this file (tkt1443.test) this |
-# test is for ticket #1433 not #1443. I mistyped the name when I was |
-# creating the file and I had already checked in the file by the wrong |
-# name be the time I noticed the error. With CVS it is a really hassle |
-# to change filenames, so I'll just leave it as is. No harm done. |
-# |
-# $Id: tkt1443.test,v 1.4 2006/01/17 09:35:02 danielk1977 Exp $ |
- |
-set testdir [file dirname $argv0] |
-source $testdir/tester.tcl |
- |
-ifcapable !subquery||!memorydb { |
- finish_test |
- return |
-} |
- |
-# Construct the sample database. |
-# |
-do_test tkt1443-1.0 { |
- sqlite3 db :memory: |
- execsql { |
- CREATE TABLE Items( |
- itemId integer primary key, |
- item str unique |
- ); |
- INSERT INTO "Items" VALUES(0, 'ALL'); |
- INSERT INTO "Items" VALUES(1, 'double:source'); |
- INSERT INTO "Items" VALUES(2, 'double'); |
- INSERT INTO "Items" VALUES(3, 'double:runtime'); |
- INSERT INTO "Items" VALUES(4, '.*:runtime'); |
- |
- CREATE TABLE Labels( |
- labelId INTEGER PRIMARY KEY, |
- label STR UNIQUE |
- ); |
- INSERT INTO "Labels" VALUES(0, 'ALL'); |
- INSERT INTO "Labels" VALUES(1, 'localhost@rpl:linux'); |
- INSERT INTO "Labels" VALUES(2, 'localhost@rpl:branch'); |
- |
- CREATE TABLE LabelMap( |
- itemId INTEGER, |
- labelId INTEGER, |
- branchId integer |
- ); |
- INSERT INTO "LabelMap" VALUES(1, 1, 1); |
- INSERT INTO "LabelMap" VALUES(2, 1, 1); |
- INSERT INTO "LabelMap" VALUES(3, 1, 1); |
- INSERT INTO "LabelMap" VALUES(1, 2, 2); |
- INSERT INTO "LabelMap" VALUES(2, 2, 3); |
- INSERT INTO "LabelMap" VALUES(3, 2, 3); |
- |
- CREATE TABLE Users ( |
- userId INTEGER PRIMARY KEY, |
- user STRING UNIQUE, |
- salt BINARY, |
- password STRING |
- ); |
- INSERT INTO "Users" VALUES(1, 'test', 'æ$d', |
- '43ba0f45014306bd6df529551ffdb3df'); |
- INSERT INTO "Users" VALUES(2, 'limited', 'ª>S', |
- 'cf07c8348fdf675cc1f7696b7d45191b'); |
- CREATE TABLE UserGroups ( |
- userGroupId INTEGER PRIMARY KEY, |
- userGroup STRING UNIQUE |
- ); |
- INSERT INTO "UserGroups" VALUES(1, 'test'); |
- INSERT INTO "UserGroups" VALUES(2, 'limited'); |
- |
- CREATE TABLE UserGroupMembers ( |
- userGroupId INTEGER, |
- userId INTEGER |
- ); |
- INSERT INTO "UserGroupMembers" VALUES(1, 1); |
- INSERT INTO "UserGroupMembers" VALUES(2, 2); |
- |
- CREATE TABLE Permissions ( |
- userGroupId INTEGER, |
- labelId INTEGER NOT NULL, |
- itemId INTEGER NOT NULL, |
- write INTEGER, |
- capped INTEGER, |
- admin INTEGER |
- ); |
- INSERT INTO "Permissions" VALUES(1, 0, 0, 1, 0, 1); |
- INSERT INTO "Permissions" VALUES(2, 2, 4, 0, 0, 0); |
- } |
-} {} |
- |
-# Run the query with an index |
-# |
-do_test tkt1443-1.1 { |
- execsql { |
- select distinct |
- Items.Item as trove, UP.pattern as pattern |
- from |
- ( select |
- Permissions.labelId as labelId, |
- PerItems.item as pattern |
- from |
- Users, UserGroupMembers, Permissions |
- left outer join Items as PerItems |
- on Permissions.itemId = PerItems.itemId |
- where |
- Users.user = 'limited' |
- and Users.userId = UserGroupMembers.userId |
- and UserGroupMembers.userGroupId = Permissions.userGroupId |
- ) as UP join LabelMap on ( UP.labelId = 0 or |
- UP.labelId = LabelMap.labelId ), |
- Labels, Items |
- where |
- Labels.label = 'localhost@rpl:branch' |
- and Labels.labelId = LabelMap.labelId |
- and LabelMap.itemId = Items.itemId |
- ORDER BY +trove, +pattern |
- } |
-} {double .*:runtime double:runtime .*:runtime double:source .*:runtime} |
- |
-# Create an index and rerun the query. |
-# Verify that the results are the same |
-# |
-do_test tkt1443-1.2 { |
- execsql { |
- CREATE UNIQUE INDEX PermissionsIdx |
- ON Permissions(userGroupId, labelId, itemId); |
- select distinct |
- Items.Item as trove, UP.pattern as pattern |
- from |
- ( select |
- Permissions.labelId as labelId, |
- PerItems.item as pattern |
- from |
- Users, UserGroupMembers, Permissions |
- left outer join Items as PerItems |
- on Permissions.itemId = PerItems.itemId |
- where |
- Users.user = 'limited' |
- and Users.userId = UserGroupMembers.userId |
- and UserGroupMembers.userGroupId = Permissions.userGroupId |
- ) as UP join LabelMap on ( UP.labelId = 0 or |
- UP.labelId = LabelMap.labelId ), |
- Labels, Items |
- where |
- Labels.label = 'localhost@rpl:branch' |
- and Labels.labelId = LabelMap.labelId |
- and LabelMap.itemId = Items.itemId |
- ORDER BY +trove, +pattern |
- } |
-} {double .*:runtime double:runtime .*:runtime double:source .*:runtime} |
- |
-finish_test |