db.usp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <!--#
  2. Test type 2: Single database query
  3. TechEmpower Web Framework Benchmarks
  4. -->
  5. <!--#declaration
  6. #include "world.h"
  7. #ifdef U_STATIC_ORM_DRIVER_PGSQL
  8. static void handlerResult(void* res, uint32_t num_result)
  9. {
  10. U_TRACE(5, "::handlerResult(%p,%u)", res, num_result)
  11. U_INTERNAL_ASSERT_EQUALS(num_result, 1)
  12. U_INTERNAL_ASSERT_EQUALS(PQnfields((PGresult*)res), 1)
  13. U_INTERNAL_ASSERT_EQUALS(PQntuples((PGresult*)res), 1)
  14. char* randomNumber = U_SYSCALL(PQgetvalue, "%p,%d,%d", (PGresult*)res, 0, 0);
  15. World::handlerOneResult(ntohl(*(uint32_t*)randomNumber));
  16. }
  17. #endif
  18. static void usp_init_db() { World::handlerInitSql(); }
  19. static void usp_fork_db() { World::handlerForkSql(); }
  20. -->
  21. <!--#header
  22. -->
  23. <!--#code
  24. #ifdef U_STATIC_ORM_DRIVER_PGSQL
  25. if (World::pstmt)
  26. {
  27. World::sendQueryPrepared();
  28. UServer_Base::handler_db1->handlerQuery(handlerResult);
  29. }
  30. else
  31. #endif
  32. {
  33. World::pworld_query->id = World::rnumber[0];
  34. (void) World::pstmt_query->execute();
  35. World::handlerOneResult(World::pworld_query->randomNumber);
  36. }
  37. -->