Skip to content

Commit d98fae7

Browse files
authored
Merge pull request #1998 from joto/pg-catalog
Consistently use pg_catalog schema when accessing system tables
2 parents 3091e78 + 017731a commit d98fae7

File tree

6 files changed

+28
-24
lines changed

6 files changed

+28
-24
lines changed

src/pgsql-capabilities.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ static void init_settings(pg_conn_t const &db_connection)
4747
capabilities().settings.clear(); // In case this is called multiple times
4848

4949
auto const res =
50-
db_connection.exec("SELECT name, setting FROM pg_settings");
50+
db_connection.exec("SELECT name, setting FROM pg_catalog.pg_settings");
5151

5252
for (int i = 0; i < res.num_tuples(); ++i) {
5353
capabilities().settings.emplace(res.get(i, 0), res.get(i, 1));
@@ -70,7 +70,7 @@ static void init_postgis_version(pg_conn_t const &db_connection)
7070
{
7171
auto const res = db_connection.exec(
7272
"SELECT regexp_split_to_table(extversion, '\\.') FROM"
73-
" pg_extension WHERE extname='postgis'");
73+
" pg_catalog.pg_extension WHERE extname='postgis'");
7474

7575
if (res.num_tuples() == 0) {
7676
throw fmt_error(

src/pgsql.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ void pg_conn_t::set_config(char const *setting, char const *value) const
6969
// Update pg_settings instead of using SET because it does not yield
7070
// errors on older versions of PostgreSQL where the settings are not
7171
// implemented.
72-
exec("UPDATE pg_settings SET setting = '{}' WHERE name = '{}'", value,
73-
setting);
72+
exec("UPDATE pg_catalog.pg_settings SET setting = '{}' WHERE name = '{}'",
73+
value, setting);
7474
}
7575

7676
pg_result_t pg_conn_t::exec(char const *sql) const

tests/test-middle.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,12 +120,13 @@ TEMPLATE_TEST_CASE("middle import", "", options_slim_default,
120120

121121
auto conn = db.connect();
122122
auto const num_tables =
123-
conn.get_count("pg_tables", "schemaname = 'public'");
123+
conn.get_count("pg_catalog.pg_tables", "schemaname = 'public'");
124124
auto const num_indexes =
125-
conn.get_count("pg_indexes", "schemaname = 'public'");
125+
conn.get_count("pg_catalog.pg_indexes", "schemaname = 'public'");
126126
auto const num_procs =
127-
conn.get_count("pg_proc", "pronamespace = (SELECT oid FROM "
128-
"pg_namespace WHERE nspname = 'public')");
127+
conn.get_count("pg_catalog.pg_proc",
128+
"pronamespace = (SELECT oid FROM "
129+
"pg_catalog.pg_namespace WHERE nspname = 'public')");
129130

130131
if (!options.middle_dbschema.empty()) {
131132
conn.exec("CREATE SCHEMA IF NOT EXISTS osm;");
@@ -329,14 +330,15 @@ TEMPLATE_TEST_CASE("middle import", "", options_slim_default,
329330
}
330331

331332
if (!options.middle_dbschema.empty()) {
332-
REQUIRE(num_tables ==
333-
conn.get_count("pg_tables", "schemaname = 'public'"));
334-
REQUIRE(num_indexes ==
335-
conn.get_count("pg_indexes", "schemaname = 'public'"));
333+
REQUIRE(num_tables == conn.get_count("pg_catalog.pg_tables",
334+
"schemaname = 'public'"));
335+
REQUIRE(num_indexes == conn.get_count("pg_catalog.pg_indexes",
336+
"schemaname = 'public'"));
336337
REQUIRE(num_procs ==
337-
conn.get_count("pg_proc",
338-
"pronamespace = (SELECT oid FROM "
339-
"pg_namespace WHERE nspname = 'public')"));
338+
conn.get_count(
339+
"pg_catalog.pg_proc",
340+
"pronamespace = (SELECT oid FROM "
341+
"pg_catalog.pg_namespace WHERE nspname = 'public')"));
340342
}
341343
}
342344

tests/test-output-flex-schema.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,19 @@ TEST_CASE("config with schema should work")
2727

2828
REQUIRE_NOTHROW(db.run_file(options, data_file));
2929

30-
REQUIRE(1 == conn.get_count("pg_namespace", "nspname = 'myschema'"));
31-
REQUIRE(1 == conn.get_count("pg_tables", "schemaname = 'myschema'"));
30+
REQUIRE(1 ==
31+
conn.get_count("pg_catalog.pg_namespace", "nspname = 'myschema'"));
32+
REQUIRE(1 ==
33+
conn.get_count("pg_catalog.pg_tables", "schemaname = 'myschema'"));
3234

3335
REQUIRE(7103 == conn.get_count("myschema.osm2pgsql_test_line"));
3436

3537
REQUIRE(1 ==
36-
conn.get_count("pg_proc",
38+
conn.get_count("pg_catalog.pg_proc",
3739
"proname = 'osm2pgsql_test_line_osm2pgsql_valid'"));
3840

39-
REQUIRE(1 == conn.get_count("pg_trigger"));
41+
REQUIRE(1 == conn.get_count("pg_catalog.pg_trigger"));
4042
REQUIRE(1 ==
41-
conn.get_count("pg_trigger",
43+
conn.get_count("pg_catalog.pg_trigger",
4244
"tgname = 'osm2pgsql_test_line_osm2pgsql_valid'"));
4345
}

tests/test-output-flex-tablespace.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ TEST_CASE("simple import with tablespaces for middle")
2020
{
2121
{
2222
auto conn = db.db().connect();
23-
REQUIRE(1 ==
24-
conn.get_count("pg_tablespace", "spcname = 'tablespacetest'"));
23+
REQUIRE(1 == conn.get_count("pg_catalog.pg_tablespace",
24+
"spcname = 'tablespacetest'"));
2525
}
2626

2727
options_t options = testing::opt_t().slim().flex(conf_file);

tests/test-output-pgsql-tablespace.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ TEST_CASE("simple import with tables spaces")
2626
{
2727
{
2828
auto conn = db.db().connect();
29-
REQUIRE(1 ==
30-
conn.get_count("pg_tablespace", "spcname = 'tablespacetest'"));
29+
REQUIRE(1 == conn.get_count("pg_catalog.pg_tablespace",
30+
"spcname = 'tablespacetest'"));
3131
}
3232

3333
options_t options = testing::opt_t().slim();

0 commit comments

Comments
 (0)