From: | Alex <cdalxndr(at)yahoo(dot)com> |
---|---|
To: | Dave Cramer <davecramer(at)gmail(dot)com> |
Cc: | PG Bug reporting form <noreply(at)postgresql(dot)org>, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #16028: JDBC currentSchema connection parameter not working for text search configuration |
Date: | 2019-09-30 11:37:37 |
Message-ID: | 288920436.1347006.1569843457296@mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
What's the behavior when both "currentSchema" is specified in the connection uri and "search_path" is overwritten to a different value by the app (inside the same transaction as the query)?Neither https://jdbc.postgresql.org/documentation/head/connect.html, nor https://www.postgresql.org/docs/9.1/runtime-config-client.html mention the behavior.
On Monday, September 30, 2019, 1:56:38 PM GMT+3, Dave Cramer <davecramer(at)gmail(dot)com> wrote:
Alex,
On Mon, 30 Sep 2019 at 06:13, Alex <cdalxndr(at)yahoo(dot)com> wrote:
Additional info:The original schema was exported using pg_dump (whole db) and imported using "psql -f".
Then I've renamed the schema in PgAdmin(4.13) to "dev" (right click -> Properties -> change name -> Save).
If I rename back the schema to original name, and use that name in "currentSchema" param, then everything works correctly.
In addition, I don't know if any configuration may override the connection param "currentSchema" (such as hibernate overwriting "search_path"), but in my case it should be used as fallback to resolve missing text search configuration.
Seems something else is going on then as this code:
@Test
public void testSchemaInProperties() throws Exception {
Connection con = java.sql.DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/test?currentSchema=dev,public","test","");
Statement stmt = con.createStatement();
stmt.execute("SHOW search_path");
ResultSet rs = stmt.getResultSet();
if (!rs.next()) {
Assert.fail("'options' connection initialization parameter should be passed to the database.");
}
Assert.assertEquals("'options' connection initialization parameter should be passed to the database.", "dev,public", rs.getString(1));
stmt.close();
TestUtil.closeDB(con);
}
works fine.
Dave.
On Monday, September 30, 2019, 3:45:48 AM GMT+3, Dave Cramer <davecramer(at)gmail(dot)com> wrote:
Interesting,
Thanks for the report.
Dave Cramer
On Thu, 26 Sep 2019 at 18:16, PG Bug reporting form <noreply(at)postgresql(dot)org> wrote:
The following bug has been logged on the website:
Bug reference: 16028
Logged by: cd a
Email address: cdalxndr(at)yahoo(dot)com
PostgreSQL version: 10.3
Operating system: Windows 10
Description:
Using a java spring app with connection:
jdbc:postgresql://localhost:5433/postgres?currentSchema=dev,public&ApplicationName=myapp
Schema 'dev' has fts configuration 'en'.
Query (debugged PgPreparedStatement):
select * from dev.category where category.language='en'
the param 'en' is registered with oid (paramType) 3734 corresponding to
'regconfig' type
Query results in: ERROR: text search configuration "en" does not exist
The same error is shown when running the query in PgAdmin if search_path
doesn't contain 'dev' schema. With 'dev' in search_path, the query is ok.
I was expecting that 'currentSchema' connection parameter will be used to
resolve fts configuration to 'dev' schema.
From | Date | Subject | |
---|---|---|---|
Next Message | Dave Cramer | 2019-09-30 11:47:00 | Re: BUG #16028: JDBC currentSchema connection parameter not working for text search configuration |
Previous Message | Dave Cramer | 2019-09-30 10:56:24 | Re: BUG #16028: JDBC currentSchema connection parameter not working for text search configuration |