/* * Copyright (c) 2010-2012 Postgres-XC Development Group */ #include #include #include "gtm/libpq-fe.h" #include "gtm/gtm_c.h" #include "gtm/gtm_client.h" #include "gtm/register.h" #include "test_common.h" pthread_key_t threadinfo_key; void setUp() { sprintf(connect_string, "host=localhost port=6666 node_name=one remote_type=%d", GTM_NODE_GTM); conn = PQconnectGTM(connect_string); _ASSERT( conn!=NULL ); client_log(("PGconnectGTM() ok.\n")); } void tearDown() { GTMPQfinish(conn); } void test01() { GlobalTransactionId gxid; int rc; SETUP(); rc = begin_replication_initial_sync(conn); if ( rc>=0 ) client_log(("begin_replication_initial_sync() ok.\n")); else client_log(("begin_replication_initial_sync() failed.\n")); rc = end_replication_initial_sync(conn); if ( rc>=0 ) client_log(("end_replication_initial_sync() ok.\n")); else client_log(("end_replication_initial_sync() failed.\n")); TEARDOWN(); } void test04() { GTM_PGXCNodeInfo *data; int rc, i; GTM_Transactions txn; GlobalTransactionId tmp; GTM_Timestamp ts; // data = (GTM_PGXCNodeInfo *)malloc( sizeof(GTM_PGXCNodeInfo)*128 ); // memset(data, 0, sizeof(GTM_PGXCNodeInfo)*128); SETUP(); tmp = begin_transaction(conn, GTM_ISOLATION_RC, &ts); rc = get_txn_gxid_list(conn, &txn); if ( rc>=0 ) client_log(("get_txn_gxid_list() ok.\n")); else client_log(("get_txn_gxid_list() failed.\n")); abort_transaction(conn, tmp); TEARDOWN(); } void test05() { GlobalTransactionId next_gxid; int rc, i; SETUP(); next_gxid = get_next_gxid(conn); if ( next_gxid!=InvalidGlobalTransactionId ) client_log(("get_next_gxid() ok. - %ld\n", next_gxid)); else client_log(("get_txn_gxid_list() failed.\n")); TEARDOWN(); } void test08() { GlobalTransactionId next_gxid; GTM_SequenceKeyData key1; GTM_SequenceKeyData key2; GTM_SequenceKeyData key3; int rc, i; GTM_SeqInfo *seq_list[1024]; SETUP(); key1.gsk_keylen = strlen("seq1"); key1.gsk_key = strdup("seq1"); key2.gsk_keylen = strlen("seq2"); key2.gsk_key = strdup("seq2"); key3.gsk_keylen = strlen("seq3"); key3.gsk_key = strdup("seq3"); close_sequence(conn, &key1); close_sequence(conn, &key2); close_sequence(conn, &key3); for (i=0 ; i<1024 ; i++) seq_list[i] = NULL; rc = get_sequence_list(conn, seq_list, 1024); if ( rc>=0 ) { client_log(("get_seq_list() ok. - %d\n", rc)); for (i=0 ; igs_key->gsk_key)); } } else client_log(("get_seq_list() failed.\n")); TEARDOWN(); } int main(int argc, char *argv[]) { test01(); test04(); /* test05(); test08(); */ return 0; }