Misleading ERROR: relation [“schema_name.table_name”] does not exist
You're creating a table with a dot identifier. 

CREATE TABLE "public.t1" ( a int );
\d public.t1
Did not find any relation named "public.t1".


But, then if you quote it again there..

\d "public.t1"
   Table "public.public.t1"
 Column |  Type   | Modifiers 
--------+---------+-----------
 a      | integer | 

SELECT table_catalog, table_schema, table_name
FROM information_schema.tables
WHERE table_name LIKE '%t1%';
 table_catalog | table_schema | table_name 
---------------+--------------+------------
 test          | public       | public.t1


So instead use this if you want to be goofy,

SELECT * FROM "public.t1";


Or, simply never quote identifiers.


  Quoted identifiers can contain any character other than a double quote itself. (To include a double quote, write two double quotes.) This allows constructing table or column names that would otherwise not be possible, such as ones containing spaces or ampersands. The length limitation still applies.


And, also periods.

This is agianst the convention of PostgreSQL. Unless you're doing something like an automated migration that needs to avoid collisions, I would higly suggest you avoid quoted identifiers entirely.


Always create things unquoted.
Always references things unquoted.


It's not just special characters either. Quoted identifiers make your schema caps-sensitive. This can make your life needlessly more difficult.