# Test that temporary tables do not show up in any backup.

new-cluster name=s1
----

exec-sql
SET experimental_enable_temp_tables=true;

CREATE DATABASE d1;
USE d1;
CREATE TEMP TABLE temp_table (id int primary key);
CREATE TEMP SEQUENCE temp_seq;
CREATE TABLE perm_table (id int primary key)
----

query-sql
SELECT table_name FROM [SHOW TABLES] ORDER BY table_name
----
perm_table
temp_seq
temp_table

query-sql
SELECT
  regexp_replace(schema_name, 'pg_temp.*', 'pg_temp') as name
FROM [SHOW SCHEMAS] ORDER BY name
----
crdb_internal
information_schema
pg_catalog
pg_extension
pg_temp
public

exec-sql
BACKUP TABLE temp_table INTO 'nodelocal://1/temp_table_backup'
----
pq: failed to resolve targets specified in the BACKUP stmt: table "temp_table" does not exist, or invalid RESTORE timestamp: supplied backups do not cover requested time

exec-sql
BACKUP DATABASE d1 INTO 'nodelocal://1/d1_backup/'
----

exec-sql
BACKUP d1.* INTO 'nodelocal://1/d1_star_backup/'
----

exec-sql
COMMENT ON TABLE temp_table IS 'should not show up in restore';
----

exec-sql
BACKUP INTO 'nodelocal://1/full_cluster_backup/';
----

exec-sql
USE defaultdb;
DROP DATABASE d1
----

exec-sql
RESTORE DATABASE d1 FROM LATEST IN 'nodelocal://1/d1_backup/'
----

exec-sql
USE d1
----

query-sql
SELECT
  regexp_replace(schema_name, 'pg_temp.*', 'pg_temp') AS name
FROM [SHOW SCHEMAS] ORDER BY name
----
crdb_internal
information_schema
pg_catalog
pg_extension
public

query-sql
SELECT table_name FROM [SHOW TABLES] ORDER BY table_name
----
perm_table

exec-sql
USE defaultdb;
DROP DATABASE d1
----

exec-sql
RESTORE DATABASE d1 FROM LATEST IN 'nodelocal://1/d1_star_backup/'
----

exec-sql
USE d1
----

query-sql
SELECT
  regexp_replace(schema_name, 'pg_temp.*', 'pg_temp') AS name
FROM [SHOW SCHEMAS] ORDER BY name
----
crdb_internal
information_schema
pg_catalog
pg_extension
public

query-sql
USE d1;
SELECT table_name FROM [SHOW TABLES] ORDER BY table_name
----
perm_table

new-cluster name=s2 share-io-dir=s1
----

exec-sql
USE defaultdb;
----

# On full cluster restore we do not restore temp tables
exec-sql
RESTORE FROM LATEST IN 'nodelocal://1/full_cluster_backup/';
----

query-sql
USE d1;
SELECT schema_name FROM [SHOW SCHEMAS] ORDER BY schema_name
----
crdb_internal
information_schema
pg_catalog
pg_extension
public


query-sql
USE defaultdb;
SELECT schema_name FROM [SHOW SCHEMAS] ORDER BY schema_name
----
crdb_internal
information_schema
pg_catalog
pg_extension
public

query-sql
USE d1;
SELECT table_name FROM [SHOW TABLES] ORDER BY table_name
----
perm_table
