From: | Josh Berkus <josh(at)berkus(dot)org> |
---|---|
To: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Notes on testing Postgres 10b1 |
Date: | 2017-06-07 05:01:20 |
Message-ID: | e0f89895-baa2-20eb-1040-02bf91400def@berkus.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Folks,
I've put together some demos on PostgreSQL 10beta1. Here's a few
feedback notes based on my experience with it.
Things I tested
----------------
* Logical replication pub/sub with replicating only two tables out of a
12-table FK heirarchy, including custom data types
* Partitioning a log-structured table, including a range type, exclusion
constraint, and foreign key.
* Various Parallel index queries on a 100m-row pgbench table
* Full text JSON search in a books database
* SCRAM authentication for local connections and replication
Positive changes beyond the obvious
-----------------------------------
* Yay defaults with replication on!
* Having defaults on the various _workers all devolve from max_workers
is also great.
* Constraint exclusion + partitioning Just Worked.
Questions
----------
Q1. Why does wal_level default to "replica" and not "logical"?
Q2: I thought we were going to finally change the pg_dump default to
"custom" format in this release? No?
Problems
--------
P1. On the publishing node, logical replication relies on the *implied*
correspondence of the application_name and the replication_slot both
being named the same as the publication in order to associate a
particular publication with a particular replication connection.
However, there's absolutely nothing preventing me from also creating a
binary replication connection by the same name It really seems like we
need a field in pg_stat_replication or pg_replication_slots which lists
the publication.
P2: If I create a subscription on a table with no primary key, I do not
recieve a warning. There should be a warning, since in most cases such
a subscription will not work. I suggest the text:
"logical replication target relation "public.fines" has no primary key.
Either create one, or set REPLICA IDENTITY index and set the published
relation to REPLICA IDENTITY FULL."
P3: apparently jsonb_to_tsvector with lang parameter isn't immutable?
This means that it can't be used for indexing:
libdata=# create index bookdata_fts on bookdata using gin ((
to_tsvector('english',bookdata)));
ERROR: functions in index expression must be marked IMMUTABLE
... and indeed it's not:
select proname, prosrc, proargtypes, provolatile from pg_proc where
proname = 'to_tsvector';
proname | prosrc | proargtypes | provolatile
-------------+------------------------+-------------+-------------
to_tsvector | jsonb_to_tsvector | 3802 | s
to_tsvector | to_tsvector_byid | 3734 25 | i
to_tsvector | to_tsvector | 25 | s
to_tsvector | json_to_tsvector | 114 | s
to_tsvector | jsonb_to_tsvector_byid | 3734 3802 | s
to_tsvector | json_to_tsvector_byid | 3734 114 | s
... can we fix that?
--
Josh Berkus
Containers & Databases Oh My!
From | Date | Subject | |
---|---|---|---|
Next Message | Neha Khatri | 2017-06-07 05:18:49 | Re: PG 10 release notes |
Previous Message | Jeevan Ladhe | 2017-06-07 05:00:23 | Re: Adding support for Default partition in partitioning |