Separate dynahash insert, search, delete tests.
authorRobert Haas <rhaas@postgresql.org>
Fri, 27 Jul 2012 15:03:00 +0000 (11:03 -0400)
committerRobert Haas <rhaas@postgresql.org>
Fri, 27 Jul 2012 15:07:10 +0000 (11:07 -0400)
contrib/hashtest/hashtest--1.0.sql
contrib/hashtest/hashtest.c

index 4b249018f981003de40ee69e11433da7bd47797e..d6e3fba8bf430f0713627c10774bf9fb021c7208 100644 (file)
@@ -16,7 +16,17 @@ RETURNS void
 AS 'MODULE_PATHNAME', 'chash_delete_test'
 LANGUAGE C;
 
-CREATE FUNCTION test_dynahash()
+CREATE FUNCTION dynahash_insert_test()
 RETURNS void
-AS 'MODULE_PATHNAME', 'test_dynahash'
+AS 'MODULE_PATHNAME', 'dynahash_insert_test'
+LANGUAGE C;
+
+CREATE FUNCTION dynahash_search_test()
+RETURNS void
+AS 'MODULE_PATHNAME', 'dynahash_search_test'
+LANGUAGE C;
+
+CREATE FUNCTION dynahash_delete_test()
+RETURNS void
+AS 'MODULE_PATHNAME', 'dynahash_delete_test'
 LANGUAGE C;
index e0c70740dfbab75d047cbad79d16ca3245b7a2f6..c155f7a1a42ac954807e29a38323466b4a53ec65 100644 (file)
@@ -17,13 +17,17 @@ void                _PG_init(void);
 Datum          chash_insert_test(PG_FUNCTION_ARGS);
 Datum          chash_search_test(PG_FUNCTION_ARGS);
 Datum          chash_delete_test(PG_FUNCTION_ARGS);
-Datum          test_dynahash(PG_FUNCTION_ARGS);
+Datum          dynahash_insert_test(PG_FUNCTION_ARGS);
+Datum          dynahash_search_test(PG_FUNCTION_ARGS);
+Datum          dynahash_delete_test(PG_FUNCTION_ARGS);
 static void hashtest_shmem_startup(void);
 
 PG_FUNCTION_INFO_V1(chash_insert_test);
 PG_FUNCTION_INFO_V1(chash_search_test);
 PG_FUNCTION_INFO_V1(chash_delete_test);
-PG_FUNCTION_INFO_V1(test_dynahash);
+PG_FUNCTION_INFO_V1(dynahash_insert_test);
+PG_FUNCTION_INFO_V1(dynahash_search_test);
+PG_FUNCTION_INFO_V1(dynahash_delete_test);
 
 typedef struct
 {
@@ -219,15 +223,9 @@ dynahash_delete(uint32 key)
 }
 
 Datum
-test_dynahash(PG_FUNCTION_ARGS)
+dynahash_insert_test(PG_FUNCTION_ARGS)
 {
        uint32  i;
-       instr_time t0,
-                          t1,
-                          t2,
-                          t3;
-
-       INSTR_TIME_SET_CURRENT(t0);
 
        for (i = 0; i < 1000000; ++i)
        {
@@ -241,7 +239,13 @@ test_dynahash(PG_FUNCTION_ARGS)
                        elog(LOG, "insert %u: worked twice", i);
        }
 
-       INSTR_TIME_SET_CURRENT(t1);
+       PG_RETURN_VOID();
+}
+
+Datum
+dynahash_search_test(PG_FUNCTION_ARGS)
+{
+       uint32  i;
 
        for (i = 0; i < 1000000; ++i)
        {
@@ -255,7 +259,13 @@ test_dynahash(PG_FUNCTION_ARGS)
                        elog(LOG, "search %u: found %u", i, val);
        }
 
-       INSTR_TIME_SET_CURRENT(t2);
+       PG_RETURN_VOID();
+}
+
+Datum
+dynahash_delete_test(PG_FUNCTION_ARGS)
+{
+       uint32  i;
 
        for (i = 0; i < 1000000; ++i)
        {
@@ -269,15 +279,5 @@ test_dynahash(PG_FUNCTION_ARGS)
                        elog(LOG, "delete %u: found twice", i);
        }
 
-       INSTR_TIME_SET_CURRENT(t3);
-       INSTR_TIME_SUBTRACT(t3, t2);
-       INSTR_TIME_SUBTRACT(t2, t1);
-       INSTR_TIME_SUBTRACT(t1, t0);
-
-       elog(LOG, "inserts: %lu us; searches: %lu us; deletes: %lu us",
-               (unsigned long) INSTR_TIME_GET_MICROSEC(t1),
-               (unsigned long) INSTR_TIME_GET_MICROSEC(t2),
-               (unsigned long) INSTR_TIME_GET_MICROSEC(t3));
-
        PG_RETURN_VOID();
 }