Files
osm2pgsql/tests/test-output-flex-schema.cpp
Jochen Topf 949150219d Consolidate database capability checks
There were several places (pgsql.hpp, pgsql-capabilities.hpp,
db-check.hpp) that had code to check various capabilities, version
numbers etc. of the database we are connected to. This is now
consolidated in pgsql-capabilities.hpp. It needs to be initialized once
at program start by calling init_database_capabilities() with a database
connection object. Checking version numbers or capabilities is then much
easier, because no active database connection is needed any more.

This also adds code to get the list of supported index methods from the
database which we will need shortly. (Only works with PostgreSQL >9.5.)
2022-12-01 15:27:10 +01:00

44 lines
1.3 KiB
C++

/**
* SPDX-License-Identifier: GPL-2.0-or-later
*
* This file is part of osm2pgsql (https://osm2pgsql.org/).
*
* Copyright (C) 2006-2022 by the osm2pgsql developer community.
* For a full list of authors see the git log.
*/
#include <catch.hpp>
#include "common-import.hpp"
#include "common-options.hpp"
static testing::db::import_t db;
static char const *const conf_file = "test_output_flex_schema.lua";
static char const *const data_file = "liechtenstein-2013-08-03.osm.pbf";
TEST_CASE("config with schema should work")
{
options_t const options = testing::opt_t().slim().flex(conf_file);
auto conn = db.db().connect();
conn.exec("CREATE SCHEMA IF NOT EXISTS myschema;");
init_database_capabilities(conn);
REQUIRE_NOTHROW(db.run_file(options, data_file));
REQUIRE(1 == conn.get_count("pg_namespace", "nspname = 'myschema'"));
REQUIRE(1 == conn.get_count("pg_tables", "schemaname = 'myschema'"));
REQUIRE(7103 == conn.get_count("myschema.osm2pgsql_test_line"));
REQUIRE(1 ==
conn.get_count("pg_proc",
"proname = 'osm2pgsql_test_line_osm2pgsql_valid'"));
REQUIRE(1 == conn.get_count("pg_trigger"));
REQUIRE(1 ==
conn.get_count("pg_trigger",
"tgname = 'osm2pgsql_test_line_osm2pgsql_valid'"));
}