bool RegressTest::runTests() {
	echoOptions();

	//All set with set-up. Let's work some mojo.
	if (!performTests(true)) {
		fprintf(stderr, "Error: Failure in correctness tests.\n");
		return false;
	}

	if (!performTests(false)) {
		fprintf(stderr, "Error: Failure in performance tests.\n");
		return false;
	}

	return true;

}
int main(int argc, const char *argv[]) {
	// insert code here...
	printf("Lection 2\n");
	
	performTests(FXPrimitiveOutputTypeTest); // part 1
	
	return 0;
}
bool ScenarioTest::init()
{
    if (TestCase::init())
    {
        performTests();
        return true;
    }

    return false;
}
void ScenarioMenuLayer::onEnter()
{
    PerformBasicLayer::onEnter();

    auto s = Director::getInstance()->getWinSize();

    // Title
    auto label = Label::createWithTTF(title().c_str(), "fonts/arial.ttf", 32);
    addChild(label, 1);
    label->setPosition(Vec2(s.width/2, s.height-50));

    // Subtitle
    std::string strSubTitle = subtitle();
    if(strSubTitle.length())
    {
        auto l = Label::createWithTTF(strSubTitle.c_str(), "fonts/Thonburi.ttf", 16);
        addChild(l, 1);
        l->setPosition(Vec2(s.width/2, s.height-80));
    }

    performTests();
}
void TextureMenuLayer::onEnter()
{
    PerformBasicLayer::onEnter();

    CCSize s = CCDirector::sharedDirector()->getWinSize();

    // Title
    CCLabelTTF *label = CCLabelTTF::create(title().c_str(), "Arial", 40);
    addChild(label, 1);
    label->setPosition(ccp(s.width/2, s.height-32));
    label->setColor(ccc3(255,255,40));

    // Subtitle
    std::string strSubTitle = subtitle();
    if(strSubTitle.length())
    {
        CCLabelTTF *l = CCLabelTTF::create(strSubTitle.c_str(), "Thonburi", 16);
        addChild(l, 1);
        l->setPosition(ccp(s.width/2, s.height-80));
    }

    performTests();
}
void TextureMenuLayer::onEnter()
{
    PerformBasicLayer::onEnter();

    auto s = Director::getInstance()->getWinSize();

    // Title
    auto label = LabelTTF::create(title().c_str(), "Arial", 40);
    addChild(label, 1);
    label->setPosition(Point(s.width/2, s.height-32));
    label->setColor(Color3B(255,255,40));

    // Subtitle
    std::string strSubTitle = subtitle();
    if(strSubTitle.length())
    {
        auto l = LabelTTF::create(strSubTitle.c_str(), "Thonburi", 16);
        addChild(l, 1);
        l->setPosition(Point(s.width/2, s.height-80));
    }

    performTests();
}
int main()
{
	void* virtual_base;
	int fd;
	void* sdram_ptr;

	if(setup(&fd, &virtual_base) != 0)
	{
		return(1);
	}

	sdram_ptr = virtual_base + ((unsigned long)(SDRAM_OFST + 0x00) & (unsigned long)(HW_REGS_MASK));

	// DO STUFF HERE

	int answers[NUMTEST];
	if(loadAnswers(answers) == -1)
	{
		return -1;
	}

	// Load weight and bias data into SDRAM ( WORKING )
	if(loadWBData(sdram_ptr) == -1)
	{
		return -1;
	}

	// Use to test SDRAM weight/bias loading, comment out if not testing.
	// testSDRAMLoad(sdram_ptr);

	int results[NUMTEST];
	if(performTests(sdram_ptr, results) == -1)
	{
		return -1;
	}
	printf("Computing Accuracy...\n");
	int i;
	int correct = 0;
	for(i = 0; i < NUMTEST; i++)
	{
		if(answers[i] == results[i])
		{
			correct++;
		}
		else
		{
			printf("Incorrect result for test %d\nExpected: %d\nReceived: %d\n\n", i, answers[i], results[i]);
		}
	}
	printf("\nAccuracy: %3.2lf%%\n", ((double)correct / (double)NUMTEST) * 100);

	// Closing out
	if(munmap(virtual_base, HW_REGS_SPAN) != 0)
	{
		printf("ERROR: munmap() failed...\n");
		close(fd);
		return(1);
	}
	close(fd);

	return 0;
}
int main()
{
	void* sdram_base, * ipc_base;
	int fd;
	void* sdram_ptr;
	volatile void* ready, * done;

	if(setup(&fd, &sdram_base, &ipc_base) != 0)
	{
		return(1);
	}

	sdram_ptr = sdram_base + ((unsigned long)(SDRAM_OFST + 0x00) & (unsigned long)(SDRAM_MASK));
	ready = ipc_base + ((unsigned long)(ALT_LWFPGALVS_OFST + 0xA0) & (unsigned long)(HW_REGS_MASK));
	done = ipc_base + ((unsigned long)(ALT_LWFPGALVS_OFST + 0x90) & (unsigned long)(HW_REGS_MASK));

	// DO STUFF HERE

	// testReadyDone(ready, done);

	int answers[NUMTEST];
	if(loadAnswers(answers) == -1)
	{
		return -1;
	}

	// Load weight and bias data into SDRAM ( WORKING )
	if(loadWBData(sdram_ptr) == -1)
	{
		return -1;
	}

	// Use to test SDRAM weight/bias loading, comment out if not testing.
	// testSDRAMLoad(sdram_ptr);

	int results[NUMTEST];
	clock_t start, finish;
	start = clock();
	if(performTests(sdram_ptr, ready, done, results) == -1)
	{
		return -1;
	}
	finish = clock();

	int i;
	for(i = 0; i < 175; i++)
	{
		printf("L1 data: %d\n", ((short*)sdram_ptr)[T_OFST + i]);
	}

	printf("Compute time: %lf\n", (double)(finish - start) / CLOCKS_PER_SEC);
	printf("Computing Accuracy...\n");
	int correct = 0;
	for(i = 0; i < NUMTEST; i++)
	{
		if(answers[i] == results[i])
		{
			correct++;
		}
		else
		{
			printf("Incorrect result for test %d\nExpected: %d\nReceived: %d\n\n", i, answers[i], results[i]);
		}
	}
	printf("\nNumber Correct: %d\nAccuracy: %3.2lf%%\n", correct, ((double)correct / (double)NUMTEST) * 100);

	// Closing out
	if(munmap(sdram_base, SDRAM_SPAN) != 0)
	{
		printf("ERROR: munmap() failed...\n");
		close(fd);
		return(1);
	}
	close(fd);

	return 0;
}
Beispiel #9
0
int main(int argc, char *argv[]) { return performTests() ? 0 : 1; }
void run()
{
	TestEntries entries =
	{
		/// Тривиальный запрос.

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			0,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			1,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			0,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			1,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			0,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			1,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			0,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			1,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT 1",
			"SELECT 1",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		/// Секция IN / глубина 1

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			1,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			1,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::DENY,
			false
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits)",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits)",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits)",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits)",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits)",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция NOT IN / глубина 1

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID NOT IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID NOT IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID NOT IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID NOT IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::DENY,
			false
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID NOT IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL NOT IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID NOT IN (SELECT UserID FROM remote_db.remote_visits)",
			"SELECT count() FROM test.visits_all WHERE UserID NOT IN (SELECT UserID FROM remote_db.remote_visits)",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID NOT IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID NOT IN (SELECT UserID FROM remote_db.remote_visits)",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID NOT IN (SELECT UserID FROM remote_db.remote_visits)",
			"SELECT count() FROM test.visits_all WHERE UserID NOT IN (SELECT UserID FROM remote_db.remote_visits)",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция GLOBAL IN / глубина 1

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция GLOBAL NOT IN / глубина 1

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL NOT IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL NOT IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL NOT IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL NOT IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL NOT IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL NOT IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL NOT IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL NOT IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция JOIN / глубина 1

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			2,
			DB::DistributedProductMode::DENY,
			false
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM remote_db.remote_visits) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM remote_db.remote_visits) USING UserID",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM remote_db.remote_visits) USING UserID",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM remote_db.remote_visits) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM remote_db.remote_visits) USING UserID",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция GLOBAL JOIN / глубина 1

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all) USING UserID",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция JOIN / глубина 1 / 2 подзапроса.

		{
			__LINE__,
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE RegionID = 2) USING UserID",
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE RegionID = 2) USING UserID",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT UserID FROM remote_db.remote_visits WHERE RegionID = 2) USING UserID",
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT UserID FROM remote_db.remote_visits WHERE RegionID = 2) USING UserID",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE RegionID = 2) USING UserID",
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE RegionID = 2) USING UserID",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE RegionID = 2) USING UserID",
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE RegionID = 2) USING UserID",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE RegionID = 2) USING UserID",
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE RegionID = 2) USING UserID",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция IN / глубина 1 / таблица на уровне 2

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			2,
			DB::DistributedProductMode::DENY,
			false
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			"SELECT count() FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM (SELECT UserID FROM remote_db.remote_visits))",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM (SELECT UserID FROM remote_db.remote_visits))",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM (SELECT UserID FROM remote_db.remote_visits))",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM (SELECT UserID FROM remote_db.remote_visits))",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM (SELECT UserID FROM remote_db.remote_visits))",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция GLOBAL IN / глубина 1 / таблица на уровне 2

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			"SELECT UserID FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			"SELECT UserID FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			"SELECT UserID FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			"SELECT UserID FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all))",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция IN на уровне 1, секция GLOBAL IN на уровне 2.

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)))",
			"SELECT UserID FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)))",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)))",
			"SELECT UserID FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)))",
			2,
			DB::DistributedProductMode::DENY,
			false
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)))",
			"SELECT UserID FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)))",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)))",
			"SELECT UserID FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote_db.remote_visits WHERE UserID GLOBAL IN (SELECT UserID FROM (SELECT UserID FROM remote_db.remote_visits)))",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция JOIN / глубина 1 / таблица на уровне 2

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)) USING UserID",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)) USING UserID",
			2,
			DB::DistributedProductMode::DENY,
			false
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)) USING UserID",
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)) USING UserID",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM remote_db.remote_visits)) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM remote_db.remote_visits)) USING UserID",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM test.visits_all)) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM remote_db.remote_visits)) USING UserID",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM remote_db.remote_visits)) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM (SELECT UserID FROM remote_db.remote_visits)) USING UserID",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция IN / глубина 2

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM remote_db.remote_visits WHERE OtherID = 1))",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM remote_db.remote_visits WHERE OtherID = 1))",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			2,
			DB::DistributedProductMode::DENY,
			false
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all WHERE BrowserID GLOBAL IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM remote_db.remote_visits WHERE OtherID = 1))",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM remote_db.remote_visits WHERE OtherID = 1))",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM remote_db.remote_visits WHERE BrowserID IN (SELECT BrowserID FROM remote_db.remote_visits WHERE OtherID = 1))",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all WHERE BrowserID IN (SELECT BrowserID FROM remote_db.remote_visits WHERE OtherID = 1))",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM remote_db.remote_visits WHERE BrowserID IN (SELECT BrowserID FROM remote_db.remote_visits WHERE OtherID = 1))",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция JOIN / глубина 2

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all ALL INNER JOIN (SELECT CounterID FROM (SELECT CounterID FROM test.visits_all)) USING CounterID)",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all ALL INNER JOIN (SELECT CounterID FROM (SELECT CounterID FROM test.visits_all)) USING CounterID)",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all ALL INNER JOIN (SELECT CounterID FROM (SELECT CounterID FROM remote_db.remote_visits)) USING CounterID)",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all ALL INNER JOIN (SELECT CounterID FROM (SELECT CounterID FROM remote_db.remote_visits)) USING CounterID)",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all ALL INNER JOIN (SELECT CounterID FROM (SELECT CounterID FROM test.visits_all)) USING CounterID)",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all ALL INNER JOIN (SELECT CounterID FROM (SELECT CounterID FROM test.visits_all)) USING CounterID)",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all ALL INNER JOIN (SELECT CounterID FROM (SELECT CounterID FROM test.visits_all)) USING CounterID)",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT CounterID FROM (SELECT CounterID FROM test.visits_all)) USING CounterID)",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.visits_all ALL INNER JOIN (SELECT CounterID FROM (SELECT CounterID FROM test.visits_all)) USING CounterID)",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM remote_db.remote_visits ALL INNER JOIN (SELECT CounterID FROM (SELECT CounterID FROM remote_db.remote_visits)) USING CounterID)",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция JOIN / глубина 2

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM (SELECT OtherID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2) USING OtherID)",
			"SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM (SELECT OtherID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2) USING OtherID)",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE OtherID GLOBAL IN (SELECT OtherID FROM (SELECT OtherID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT OtherID FROM remote_db.remote_visits WHERE RegionID = 2) USING OtherID)",
			"SELECT UserID FROM test.visits_all WHERE OtherID GLOBAL IN (SELECT OtherID FROM (SELECT OtherID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT OtherID FROM remote_db.remote_visits WHERE RegionID = 2) USING OtherID)",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE OtherID GLOBAL IN (SELECT OtherID FROM (SELECT OtherID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2) USING OtherID)",
			"SELECT UserID FROM test.visits_all WHERE OtherID GLOBAL IN (SELECT OtherID FROM (SELECT OtherID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2) USING OtherID)",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM (SELECT OtherID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2) USING OtherID)",
			"SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM (SELECT OtherID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2) USING OtherID)",
			2,
			DB::DistributedProductMode::DENY,
			false
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM (SELECT OtherID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2) USING OtherID)",
			"SELECT UserID FROM test.visits_all WHERE OtherID GLOBAL IN (SELECT OtherID FROM (SELECT OtherID FROM test.visits_all WHERE RegionID = 1) GLOBAL ALL INNER JOIN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2) USING OtherID)",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM (SELECT OtherID FROM test.visits_all WHERE RegionID = 1) ALL INNER JOIN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2) USING OtherID)",
			"SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM (SELECT OtherID FROM remote_db.remote_visits WHERE RegionID = 1) ALL INNER JOIN (SELECT OtherID FROM remote_db.remote_visits WHERE RegionID = 2) USING OtherID)",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция JOIN / секция IN

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2)) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2)) USING UserID",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2)) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2)) USING UserID",
			2,
			DB::DistributedProductMode::DENY,
			false
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2)) USING UserID",
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2)) USING UserID",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM remote_db.remote_visits WHERE RegionID = 2)) USING UserID",
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM remote_db.remote_visits WHERE RegionID = 2)) USING UserID",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2)) USING UserID",
			"SELECT UserID FROM test.visits_all GLOBAL ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE OtherID GLOBAL IN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2)) USING UserID",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM test.visits_all WHERE OtherID IN (SELECT OtherID FROM test.visits_all WHERE RegionID = 2)) USING UserID",
			"SELECT UserID FROM test.visits_all ALL INNER JOIN (SELECT UserID FROM remote_db.remote_visits WHERE OtherID IN (SELECT OtherID FROM remote_db.remote_visits WHERE RegionID = 2)) USING UserID",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Табличная функция.

		{
			__LINE__,
			"SELECT count() FROM remote('127.0.0.{1,2}', test, visits_all) WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM remote('127.0.0.{1,2}', test, visits_all) WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM remote('127.0.0.{1,2}', test, visits_all) WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM remote('127.0.0.{1,2}', test, visits_all) WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote('127.0.0.{1,2}', test, visits_all))",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote('127.0.0.{1,2}', test, visits_all))",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM remote('127.0.0.{1,2}', test, visits_all) WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM remote('127.0.0.{1,2}', test, visits_all) WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote('127.0.0.{1,2}', test, visits_all))",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote('127.0.0.{1,2}', test, visits_all))",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM remote('127.0.0.{1,2}', test, visits_all) WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			"SELECT count() FROM remote('127.0.0.{1,2}', test, visits_all) WHERE UserID IN (SELECT UserID FROM test.visits_all)",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote('127.0.0.{1,2}', test, visits_all))",
			"SELECT count() FROM test.visits_all WHERE UserID IN (SELECT UserID FROM remote('127.0.0.{1,2}', test, visits_all))",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Секция IN / глубина 2 / две распределённые таблицы

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.hits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID GLOBAL IN (SELECT CounterID FROM test.hits_all WHERE BrowserID GLOBAL IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM test.hits_all WHERE BrowserID IN (SELECT BrowserID FROM test.visits_all WHERE OtherID = 1))",
			"SELECT UserID, RegionID FROM test.visits_all WHERE CounterID IN (SELECT CounterID FROM distant_db.distant_hits WHERE BrowserID IN (SELECT BrowserID FROM remote_db.remote_visits WHERE OtherID = 1))",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Агрегатная функция.

		{
			__LINE__,
			"SELECT sum(RegionID IN (SELECT RegionID from test.hits_all)) FROM test.visits_all",
			"SELECT sum(RegionID IN (SELECT RegionID from test.hits_all)) FROM test.visits_all",
			2,
			DB::DistributedProductMode::ALLOW,
			true
		},

		{
			__LINE__,
			"SELECT sum(RegionID IN (SELECT RegionID from test.hits_all)) FROM test.visits_all",
			"SELECT sum(RegionID IN (SELECT RegionID from test.hits_all)) FROM test.visits_all",
			2,
			DB::DistributedProductMode::DENY,
			false
		},

		{
			__LINE__,
			"SELECT sum(RegionID GLOBAL IN (SELECT RegionID from test.hits_all)) FROM test.visits_all",
			"SELECT sum(RegionID GLOBAL IN (SELECT RegionID from test.hits_all)) FROM test.visits_all",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT sum(RegionID IN (SELECT RegionID from test.hits_all)) FROM test.visits_all",
			"SELECT sum(RegionID GLOBAL IN (SELECT RegionID from test.hits_all)) FROM test.visits_all",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT sum(RegionID GLOBAL IN (SELECT RegionID from test.hits_all)) FROM test.visits_all",
			"SELECT sum(RegionID GLOBAL IN (SELECT RegionID from test.hits_all)) FROM test.visits_all",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT sum(RegionID IN (SELECT RegionID from test.hits_all)) FROM test.visits_all",
			"SELECT sum(RegionID IN (SELECT RegionID from distant_db.distant_hits)) FROM test.visits_all",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		/// Miscellaneous.

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all))",
			"SELECT count() FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all))",
			2,
			DB::DistributedProductMode::DENY,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all))",
			"SELECT count() FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all))",
			2,
			DB::DistributedProductMode::LOCAL,
			true
		},

		{
			__LINE__,
			"SELECT count() FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all))",
			"SELECT count() FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all WHERE x GLOBAL IN (SELECT x FROM test.visits_all))",
			2,
			DB::DistributedProductMode::GLOBAL,
			true
		},

		{
			__LINE__,
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM test.hits_all))",
			"SELECT UserID FROM (SELECT UserID FROM test.visits_all WHERE UserID GLOBAL IN (SELECT UserID FROM test.hits_all))",
			2,
			DB::DistributedProductMode::DENY,
			true
		}
	};

	performTests(entries);
}