util.c
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * util.c
  4.  *   general routines for libpq backend
  5.  *
  6.  * Copyright (c) 1994, Regents of the University of California
  7.  *
  8.  * $Id: util.c,v 1.9 1999/05/25 16:09:03 momjian Exp $
  9.  *
  10.  *-------------------------------------------------------------------------
  11.  */
  12. /*
  13.  *  UTILITY ROUTINES
  14.  * pqdebug - send a string to the debugging output port
  15.  * pqdebug2 - send two strings to stdout
  16.  * PQtrace - turn on pqdebug() tracing
  17.  * PQuntrace - turn off pqdebug() tracing
  18.  */
  19. #include <stdio.h>
  20. #include <string.h>
  21. #include <postgres.h>
  22. #include <lib/dllist.h>
  23. #include <libpq/libpq.h> /* where the declarations go */
  24. #include <utils/exc.h>
  25. /* ----------------
  26.  * exceptions
  27.  * ----------------
  28.  */
  29. Exception MemoryError = {"Memory Allocation Error"};
  30. Exception PortalError = {"Invalid arguments to portal functions"};
  31. Exception PostquelError = {"Sql Error"};
  32. Exception ProtocolError = {"Protocol Error"};
  33. char PQerrormsg[ERROR_MSG_LENGTH];
  34. int PQtracep = 0; /* 1 to print out debugging messages */
  35. FILE    *debug_port = (FILE *) NULL;
  36. /* ----------------------------------------------------------------
  37.  * PQ utility routines
  38.  * ----------------------------------------------------------------
  39.  */
  40. void
  41. pqdebug(char *target, char *msg)
  42. {
  43. if (!target)
  44. return;
  45. if (PQtracep)
  46. {
  47. /*
  48.  * if nothing else was suggested default to stdout
  49.  */
  50. if (!debug_port)
  51. debug_port = stdout;
  52. fprintf(debug_port, target, msg);
  53. fprintf(debug_port, "n");
  54. }
  55. }
  56. void
  57. pqdebug2(char *target, char *msg1, char *msg2)
  58. {
  59. if (!target)
  60. return;
  61. if (PQtracep)
  62. {
  63. /*
  64.  * if nothing else was suggested default to stdout
  65.  */
  66. if (!debug_port)
  67. debug_port = stdout;
  68. fprintf(debug_port, target, msg1, msg2);
  69. fprintf(debug_port, "n");
  70. }
  71. }
  72. /* --------------------------------
  73.  * PQtrace() / PQuntrace()
  74.  * --------------------------------
  75.  */
  76. void
  77. PQtrace()
  78. {
  79. PQtracep = 1;
  80. }
  81. void
  82. PQuntrace()
  83. {
  84. PQtracep = 0;
  85. }