mirror of https://github.com/citusdata/citus.git
Add distributed func creation queries in dependency replication logic
parent
09d4efadcf
commit
ed11b9590c
|
@ -177,6 +177,11 @@ GetDependencyCreateDDLCommands(const ObjectAddress *dependency)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case OCLASS_PROC:
|
||||||
|
{
|
||||||
|
return CreateFunctionDDLCommandsIdempotent(dependency);
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include "access/xact.h"
|
#include "access/xact.h"
|
||||||
#include "catalog/namespace.h"
|
#include "catalog/namespace.h"
|
||||||
#include "catalog/pg_proc.h"
|
#include "catalog/pg_proc.h"
|
||||||
|
#include "distributed/commands.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/metadata/distobject.h"
|
#include "distributed/metadata/distobject.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
|
@ -29,7 +30,7 @@
|
||||||
#include "utils/fmgrprotos.h"
|
#include "utils/fmgrprotos.h"
|
||||||
|
|
||||||
/* forward declaration for helper functions*/
|
/* forward declaration for helper functions*/
|
||||||
static const char * GetFunctionDDLCommand(Oid funcOid);
|
static char * GetFunctionDDLCommand(const RegProcedure funcOid);
|
||||||
static void EnsureSequentialModeForFunctionDDL(void);
|
static void EnsureSequentialModeForFunctionDDL(void);
|
||||||
|
|
||||||
PG_FUNCTION_INFO_V1(create_distributed_function);
|
PG_FUNCTION_INFO_V1(create_distributed_function);
|
||||||
|
@ -74,16 +75,32 @@ create_distributed_function(PG_FUNCTION_ARGS)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* CreateFunctionDDLCommandsIdempotent returns a list of DDL statements (const char *) to be
|
||||||
|
* executed on a node to recreate the function addressed by the functionAddress.
|
||||||
|
*/
|
||||||
|
List *
|
||||||
|
CreateFunctionDDLCommandsIdempotent(const ObjectAddress *functionAddress)
|
||||||
|
{
|
||||||
|
char *ddlCommand = NULL;
|
||||||
|
|
||||||
|
Assert(functionAddress->classId == ProcedureRelationId);
|
||||||
|
|
||||||
|
ddlCommand = GetFunctionDDLCommand(functionAddress->objectId);
|
||||||
|
return list_make1(ddlCommand);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GetFunctionDDLCommand returns the complete "CREATE OR REPLACE FUNCTION ..." statement for
|
* GetFunctionDDLCommand returns the complete "CREATE OR REPLACE FUNCTION ..." statement for
|
||||||
* the specified function.
|
* the specified function.
|
||||||
*/
|
*/
|
||||||
static const char *
|
static char *
|
||||||
GetFunctionDDLCommand(RegProcedure funcOid)
|
GetFunctionDDLCommand(const RegProcedure funcOid)
|
||||||
{
|
{
|
||||||
OverrideSearchPath *overridePath = NULL;
|
OverrideSearchPath *overridePath = NULL;
|
||||||
Datum sqlTextDatum = 0;
|
Datum sqlTextDatum = 0;
|
||||||
const char *sql = NULL;
|
char *sql = NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set search_path to NIL so that all objects outside of pg_catalog will be
|
* Set search_path to NIL so that all objects outside of pg_catalog will be
|
||||||
|
|
|
@ -159,6 +159,9 @@ extern List * CreateTypeDDLCommandsIdempotent(const ObjectAddress *typeAddress);
|
||||||
extern char * GenerateBackupNameForTypeCollision(const ObjectAddress *address);
|
extern char * GenerateBackupNameForTypeCollision(const ObjectAddress *address);
|
||||||
extern RenameStmt * CreateRenameTypeStmt(const ObjectAddress *address, char *newName);
|
extern RenameStmt * CreateRenameTypeStmt(const ObjectAddress *address, char *newName);
|
||||||
|
|
||||||
|
/* function.c - forward declarations */
|
||||||
|
extern List * CreateFunctionDDLCommandsIdempotent(const ObjectAddress *functionAddress);
|
||||||
|
|
||||||
/* vacuum.c - froward declarations */
|
/* vacuum.c - froward declarations */
|
||||||
extern void ProcessVacuumStmt(VacuumStmt *vacuumStmt, const char *vacuumCommand);
|
extern void ProcessVacuumStmt(VacuumStmt *vacuumStmt, const char *vacuumCommand);
|
||||||
|
|
||||||
|
|
|
@ -29,11 +29,11 @@ step detector-dump-wait-edges:
|
||||||
|
|
||||||
waiting_transaction_numblocking_transaction_numblocking_transaction_waiting
|
waiting_transaction_numblocking_transaction_numblocking_transaction_waiting
|
||||||
|
|
||||||
266 265 f
|
281 280 f
|
||||||
transactionnumberwaitingtransactionnumbers
|
transactionnumberwaitingtransactionnumbers
|
||||||
|
|
||||||
265
|
280
|
||||||
266 265
|
281 280
|
||||||
step s1-abort:
|
step s1-abort:
|
||||||
ABORT;
|
ABORT;
|
||||||
|
|
||||||
|
@ -77,14 +77,14 @@ step detector-dump-wait-edges:
|
||||||
|
|
||||||
waiting_transaction_numblocking_transaction_numblocking_transaction_waiting
|
waiting_transaction_numblocking_transaction_numblocking_transaction_waiting
|
||||||
|
|
||||||
270 269 f
|
285 284 f
|
||||||
271 269 f
|
286 284 f
|
||||||
271 270 t
|
286 285 t
|
||||||
transactionnumberwaitingtransactionnumbers
|
transactionnumberwaitingtransactionnumbers
|
||||||
|
|
||||||
269
|
284
|
||||||
270 269
|
285 284
|
||||||
271 269,270
|
286 284,285
|
||||||
step s1-abort:
|
step s1-abort:
|
||||||
ABORT;
|
ABORT;
|
||||||
|
|
||||||
|
|
|
@ -29,11 +29,11 @@ step detector-dump-wait-edges:
|
||||||
|
|
||||||
waiting_transaction_numblocking_transaction_numblocking_transaction_waiting
|
waiting_transaction_numblocking_transaction_numblocking_transaction_waiting
|
||||||
|
|
||||||
267 266 f
|
282 281 f
|
||||||
transactionnumberwaitingtransactionnumbers
|
transactionnumberwaitingtransactionnumbers
|
||||||
|
|
||||||
266
|
281
|
||||||
267 266
|
282 281
|
||||||
step s1-abort:
|
step s1-abort:
|
||||||
ABORT;
|
ABORT;
|
||||||
|
|
||||||
|
@ -77,14 +77,14 @@ step detector-dump-wait-edges:
|
||||||
|
|
||||||
waiting_transaction_numblocking_transaction_numblocking_transaction_waiting
|
waiting_transaction_numblocking_transaction_numblocking_transaction_waiting
|
||||||
|
|
||||||
271 270 f
|
286 285 f
|
||||||
272 270 f
|
287 285 f
|
||||||
272 271 t
|
287 286 t
|
||||||
transactionnumberwaitingtransactionnumbers
|
transactionnumberwaitingtransactionnumbers
|
||||||
|
|
||||||
270
|
285
|
||||||
271 270
|
286 285
|
||||||
272 270,271
|
287 285,286
|
||||||
step s1-abort:
|
step s1-abort:
|
||||||
ABORT;
|
ABORT;
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -37,6 +41,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -79,6 +90,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
count
|
count
|
||||||
|
@ -93,6 +108,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -118,6 +140,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -137,6 +163,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -185,6 +218,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
count
|
count
|
||||||
|
@ -199,6 +236,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -224,6 +268,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -243,6 +291,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -291,6 +346,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
count
|
count
|
||||||
|
@ -305,6 +364,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -330,6 +396,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -349,6 +419,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -392,6 +469,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
(schema,{myschema},{})
|
(schema,{myschema},{})
|
||||||
|
@ -407,6 +488,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -432,6 +520,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -451,6 +543,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -500,6 +599,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
(schema,{myschema},{})
|
(schema,{myschema},{})
|
||||||
|
@ -515,6 +618,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -540,6 +650,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -559,6 +673,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -608,6 +729,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
(schema,{myschema},{})
|
(schema,{myschema},{})
|
||||||
|
@ -623,6 +748,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -648,6 +780,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -667,6 +803,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -735,6 +878,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
(schema,{myschema},{})
|
(schema,{myschema},{})
|
||||||
|
@ -750,6 +897,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -775,6 +929,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -794,6 +952,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -881,6 +1046,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
(schema,{myschema},{})
|
(schema,{myschema},{})
|
||||||
|
@ -896,6 +1065,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -921,6 +1097,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -940,6 +1120,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -1001,6 +1188,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
(schema,{myschema},{})
|
(schema,{myschema},{})
|
||||||
|
@ -1016,6 +1207,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -1041,6 +1239,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -1060,6 +1262,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -1129,6 +1338,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
(schema,{myschema},{})
|
(schema,{myschema},{})
|
||||||
|
@ -1145,6 +1358,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -1170,6 +1390,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -1189,6 +1413,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -1225,6 +1456,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
(type,{public.tt1},{})
|
(type,{public.tt1},{})
|
||||||
|
@ -1242,6 +1477,13 @@ run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,1)
|
(localhost,57637,t,1)
|
||||||
(localhost,57638,t,1)
|
(localhost,57638,t,1)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
|
||||||
|
|
||||||
|
@ -1265,6 +1507,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -1284,6 +1530,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -1319,6 +1572,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
(type,{public.tt1},{})
|
(type,{public.tt1},{})
|
||||||
|
@ -1336,6 +1593,13 @@ run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,1)
|
(localhost,57637,t,1)
|
||||||
(localhost,57638,t,1)
|
(localhost,57638,t,1)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
|
||||||
|
|
||||||
|
@ -1359,6 +1623,10 @@ step s1-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
?column?
|
?column?
|
||||||
|
@ -1378,6 +1646,13 @@ count
|
||||||
0
|
0
|
||||||
run_command_on_workers
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,0)
|
(localhost,57637,t,0)
|
||||||
(localhost,57638,t,0)
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
@ -1430,6 +1705,10 @@ step s2-print-distributed-objects:
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
pg_identify_object_as_address
|
pg_identify_object_as_address
|
||||||
|
|
||||||
(schema,{myschema},{})
|
(schema,{myschema},{})
|
||||||
|
@ -1448,6 +1727,383 @@ run_command_on_workers
|
||||||
|
|
||||||
(localhost,57637,t,1)
|
(localhost,57637,t,1)
|
||||||
(localhost,57638,t,1)
|
(localhost,57638,t,1)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
master_remove_node
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
starting permutation: s1-print-distributed-objects s1-begin s1-add-worker s2-public-schema s2-distribute-function s1-commit s2-print-distributed-objects
|
||||||
|
?column?
|
||||||
|
|
||||||
|
1
|
||||||
|
step s1-print-distributed-objects:
|
||||||
|
SELECT 1 FROM master_add_node('localhost', 57638);
|
||||||
|
|
||||||
|
-- print an overview of all distributed objects
|
||||||
|
SELECT pg_identify_object_as_address(classid, objid, objsubid) FROM citus.pg_dist_object ORDER BY 1;
|
||||||
|
|
||||||
|
-- print if the schema has been created
|
||||||
|
SELECT count(*) FROM pg_namespace where nspname = 'myschema';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_namespace where nspname = 'myschema';$$);
|
||||||
|
|
||||||
|
-- print if the type has been created
|
||||||
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
|
?column?
|
||||||
|
|
||||||
|
1
|
||||||
|
pg_identify_object_as_address
|
||||||
|
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
master_remove_node
|
||||||
|
|
||||||
|
|
||||||
|
step s1-begin:
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
step s1-add-worker:
|
||||||
|
SELECT 1 FROM master_add_node('localhost', 57638);
|
||||||
|
|
||||||
|
?column?
|
||||||
|
|
||||||
|
1
|
||||||
|
step s2-public-schema:
|
||||||
|
SET search_path TO public;
|
||||||
|
|
||||||
|
step s2-distribute-function:
|
||||||
|
CREATE OR REPLACE FUNCTION add (INT,INT) RETURNS INT AS $$ SELECT $1 + $2 $$ LANGUAGE SQL;
|
||||||
|
SELECT create_distributed_function('add(INT,INT)');
|
||||||
|
<waiting ...>
|
||||||
|
step s1-commit:
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
step s2-distribute-function: <... completed>
|
||||||
|
create_distributed_function
|
||||||
|
|
||||||
|
|
||||||
|
step s2-print-distributed-objects:
|
||||||
|
-- print an overview of all distributed objects
|
||||||
|
SELECT pg_identify_object_as_address(classid, objid, objsubid) FROM citus.pg_dist_object ORDER BY 1;
|
||||||
|
|
||||||
|
-- print if the schema has been created
|
||||||
|
SELECT count(*) FROM pg_namespace where nspname = 'myschema';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_namespace where nspname = 'myschema';$$);
|
||||||
|
|
||||||
|
-- print if the type has been created
|
||||||
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
|
pg_identify_object_as_address
|
||||||
|
|
||||||
|
(function,"{public,add}","{integer,integer}")
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
1
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,1)
|
||||||
|
(localhost,57638,t,1)
|
||||||
|
master_remove_node
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
starting permutation: s1-print-distributed-objects s1-begin s2-public-schema s2-distribute-function s1-add-worker s1-commit s2-print-distributed-objects
|
||||||
|
?column?
|
||||||
|
|
||||||
|
1
|
||||||
|
step s1-print-distributed-objects:
|
||||||
|
SELECT 1 FROM master_add_node('localhost', 57638);
|
||||||
|
|
||||||
|
-- print an overview of all distributed objects
|
||||||
|
SELECT pg_identify_object_as_address(classid, objid, objsubid) FROM citus.pg_dist_object ORDER BY 1;
|
||||||
|
|
||||||
|
-- print if the schema has been created
|
||||||
|
SELECT count(*) FROM pg_namespace where nspname = 'myschema';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_namespace where nspname = 'myschema';$$);
|
||||||
|
|
||||||
|
-- print if the type has been created
|
||||||
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
|
?column?
|
||||||
|
|
||||||
|
1
|
||||||
|
pg_identify_object_as_address
|
||||||
|
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
master_remove_node
|
||||||
|
|
||||||
|
|
||||||
|
step s1-begin:
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
step s2-public-schema:
|
||||||
|
SET search_path TO public;
|
||||||
|
|
||||||
|
step s2-distribute-function:
|
||||||
|
CREATE OR REPLACE FUNCTION add (INT,INT) RETURNS INT AS $$ SELECT $1 + $2 $$ LANGUAGE SQL;
|
||||||
|
SELECT create_distributed_function('add(INT,INT)');
|
||||||
|
|
||||||
|
create_distributed_function
|
||||||
|
|
||||||
|
|
||||||
|
step s1-add-worker:
|
||||||
|
SELECT 1 FROM master_add_node('localhost', 57638);
|
||||||
|
|
||||||
|
?column?
|
||||||
|
|
||||||
|
1
|
||||||
|
step s1-commit:
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
step s2-print-distributed-objects:
|
||||||
|
-- print an overview of all distributed objects
|
||||||
|
SELECT pg_identify_object_as_address(classid, objid, objsubid) FROM citus.pg_dist_object ORDER BY 1;
|
||||||
|
|
||||||
|
-- print if the schema has been created
|
||||||
|
SELECT count(*) FROM pg_namespace where nspname = 'myschema';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_namespace where nspname = 'myschema';$$);
|
||||||
|
|
||||||
|
-- print if the type has been created
|
||||||
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
|
pg_identify_object_as_address
|
||||||
|
|
||||||
|
(function,"{public,add}","{integer,integer}")
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
1
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,1)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
master_remove_node
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
starting permutation: s1-print-distributed-objects s1-begin s2-begin s2-create-schema s2-distribute-function s1-add-worker s2-commit s1-commit s2-print-distributed-objects
|
||||||
|
?column?
|
||||||
|
|
||||||
|
1
|
||||||
|
step s1-print-distributed-objects:
|
||||||
|
SELECT 1 FROM master_add_node('localhost', 57638);
|
||||||
|
|
||||||
|
-- print an overview of all distributed objects
|
||||||
|
SELECT pg_identify_object_as_address(classid, objid, objsubid) FROM citus.pg_dist_object ORDER BY 1;
|
||||||
|
|
||||||
|
-- print if the schema has been created
|
||||||
|
SELECT count(*) FROM pg_namespace where nspname = 'myschema';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_namespace where nspname = 'myschema';$$);
|
||||||
|
|
||||||
|
-- print if the type has been created
|
||||||
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
|
SELECT master_remove_node('localhost', 57638);
|
||||||
|
|
||||||
|
?column?
|
||||||
|
|
||||||
|
1
|
||||||
|
pg_identify_object_as_address
|
||||||
|
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
master_remove_node
|
||||||
|
|
||||||
|
|
||||||
|
step s1-begin:
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
step s2-begin:
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
step s2-create-schema:
|
||||||
|
CREATE SCHEMA myschema;
|
||||||
|
SET search_path TO myschema;
|
||||||
|
|
||||||
|
step s2-distribute-function:
|
||||||
|
CREATE OR REPLACE FUNCTION add (INT,INT) RETURNS INT AS $$ SELECT $1 + $2 $$ LANGUAGE SQL;
|
||||||
|
SELECT create_distributed_function('add(INT,INT)');
|
||||||
|
|
||||||
|
create_distributed_function
|
||||||
|
|
||||||
|
|
||||||
|
step s1-add-worker:
|
||||||
|
SELECT 1 FROM master_add_node('localhost', 57638);
|
||||||
|
<waiting ...>
|
||||||
|
step s2-commit:
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
step s1-add-worker: <... completed>
|
||||||
|
?column?
|
||||||
|
|
||||||
|
1
|
||||||
|
step s1-commit:
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
step s2-print-distributed-objects:
|
||||||
|
-- print an overview of all distributed objects
|
||||||
|
SELECT pg_identify_object_as_address(classid, objid, objsubid) FROM citus.pg_dist_object ORDER BY 1;
|
||||||
|
|
||||||
|
-- print if the schema has been created
|
||||||
|
SELECT count(*) FROM pg_namespace where nspname = 'myschema';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_namespace where nspname = 'myschema';$$);
|
||||||
|
|
||||||
|
-- print if the type has been created
|
||||||
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
|
pg_identify_object_as_address
|
||||||
|
|
||||||
|
(function,"{myschema,add}","{integer,integer}")
|
||||||
|
(schema,{myschema},{})
|
||||||
|
count
|
||||||
|
|
||||||
|
1
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,1)
|
||||||
|
(localhost,57638,t,1)
|
||||||
|
count
|
||||||
|
|
||||||
|
0
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,0)
|
||||||
|
(localhost,57638,t,0)
|
||||||
|
count
|
||||||
|
|
||||||
|
1
|
||||||
|
run_command_on_workers
|
||||||
|
|
||||||
|
(localhost,57637,t,1)
|
||||||
|
(localhost,57638,t,0)
|
||||||
master_remove_node
|
master_remove_node
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,21 @@ teardown
|
||||||
DROP TABLE IF EXISTS t2 CASCADE;
|
DROP TABLE IF EXISTS t2 CASCADE;
|
||||||
DROP TABLE IF EXISTS t3 CASCADE;
|
DROP TABLE IF EXISTS t3 CASCADE;
|
||||||
DROP TYPE IF EXISTS tt1 CASCADE;
|
DROP TYPE IF EXISTS tt1 CASCADE;
|
||||||
|
DROP FUNCTION IF EXISTS add(INT,INT) CASCADE;
|
||||||
|
|
||||||
|
-- Remove the pg_dist_object record manually as we do not yet hook into DROP FUNC
|
||||||
|
-- queries. If the function does not exist, the casting to regprocedure fails.
|
||||||
|
DO
|
||||||
|
$do$
|
||||||
|
BEGIN
|
||||||
|
DELETE FROM citus.pg_dist_object WHERE objid = 'add(int,int)'::regprocedure;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN undefined_function THEN RETURN;
|
||||||
|
END;
|
||||||
|
$do$;
|
||||||
|
|
||||||
|
-- similarly drop the function in the workers manually
|
||||||
|
SELECT run_command_on_workers($$DROP FUNCTION IF EXISTS add(INT,INT) CASCADE;$$);
|
||||||
|
|
||||||
SELECT master_remove_node(nodename, nodeport) FROM pg_dist_node;
|
SELECT master_remove_node(nodename, nodeport) FROM pg_dist_node;
|
||||||
}
|
}
|
||||||
|
@ -58,6 +73,10 @@ step "s1-print-distributed-objects"
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
|
|
||||||
SELECT master_remove_node('localhost', 57638);
|
SELECT master_remove_node('localhost', 57638);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,6 +114,12 @@ step "s2-create-table-with-type"
|
||||||
SELECT create_distributed_table('t1', 'a');
|
SELECT create_distributed_table('t1', 'a');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
step "s2-distribute-function"
|
||||||
|
{
|
||||||
|
CREATE OR REPLACE FUNCTION add (INT,INT) RETURNS INT AS $$ SELECT $1 + $2 $$ LANGUAGE SQL;
|
||||||
|
SELECT create_distributed_function('add(INT,INT)');
|
||||||
|
}
|
||||||
|
|
||||||
step "s2-begin"
|
step "s2-begin"
|
||||||
{
|
{
|
||||||
BEGIN;
|
BEGIN;
|
||||||
|
@ -119,6 +144,10 @@ step "s2-print-distributed-objects"
|
||||||
-- print if the type has been created
|
-- print if the type has been created
|
||||||
SELECT count(*) FROM pg_type where typname = 'tt1';
|
SELECT count(*) FROM pg_type where typname = 'tt1';
|
||||||
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_type where typname = 'tt1';$$);
|
||||||
|
|
||||||
|
-- print if the function has been created
|
||||||
|
SELECT count(*) FROM pg_proc WHERE proname='add';
|
||||||
|
SELECT run_command_on_workers($$SELECT count(*) FROM pg_proc WHERE proname='add';$$);
|
||||||
}
|
}
|
||||||
|
|
||||||
session "s3"
|
session "s3"
|
||||||
|
@ -205,3 +234,8 @@ permutation "s1-print-distributed-objects" "s1-begin" "s2-begin" "s4-begin" "s1-
|
||||||
permutation "s1-print-distributed-objects" "s1-begin" "s1-add-worker" "s2-public-schema" "s2-create-type" "s1-commit" "s2-print-distributed-objects"
|
permutation "s1-print-distributed-objects" "s1-begin" "s1-add-worker" "s2-public-schema" "s2-create-type" "s1-commit" "s2-print-distributed-objects"
|
||||||
permutation "s1-print-distributed-objects" "s1-begin" "s2-public-schema" "s2-create-type" "s1-add-worker" "s1-commit" "s2-print-distributed-objects"
|
permutation "s1-print-distributed-objects" "s1-begin" "s2-public-schema" "s2-create-type" "s1-add-worker" "s1-commit" "s2-print-distributed-objects"
|
||||||
permutation "s1-print-distributed-objects" "s1-begin" "s2-begin" "s2-create-schema" "s2-create-type" "s2-create-table-with-type" "s1-add-worker" "s2-commit" "s1-commit" "s2-print-distributed-objects"
|
permutation "s1-print-distributed-objects" "s1-begin" "s2-begin" "s2-create-schema" "s2-create-type" "s2-create-table-with-type" "s1-add-worker" "s2-commit" "s1-commit" "s2-print-distributed-objects"
|
||||||
|
|
||||||
|
# distributed function tests
|
||||||
|
permutation "s1-print-distributed-objects" "s1-begin" "s1-add-worker" "s2-public-schema" "s2-distribute-function" "s1-commit" "s2-print-distributed-objects"
|
||||||
|
permutation "s1-print-distributed-objects" "s1-begin" "s2-public-schema" "s2-distribute-function" "s1-add-worker" "s1-commit" "s2-print-distributed-objects"
|
||||||
|
permutation "s1-print-distributed-objects" "s1-begin" "s2-begin" "s2-create-schema" "s2-distribute-function" "s1-add-worker" "s2-commit" "s1-commit" "s2-print-distributed-objects"
|
||||||
|
|
Loading…
Reference in New Issue