Problem with API (libpq) - detailed error codes

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Adam Bukla

    Problem with API (libpq) - detailed error codes

    Hi!

    I started programming PostgreSQL database with libpq API (client
    side). It looks very easy, but unexpected I found problem, which I
    cannot solve myself.
    If function PQexec fails, I can get error code using PQresultStatus.
    But returned codes are very generally and do not specify what really
    happen. I can get detailed error description using PQerrorMessage
    function, but I need detailed error code (number).

    For instance, if I create table, I would like to know, that operation
    failed because:
    - table already exist
    - sql syntax error
    - invalid columnt type
    and so on.

    I searched documents about libpq API and even header file
    'internal/libpq-int.h' but I didn't found any interesting.

    I would be very gracefully for any hint.

    Best regards,
    Adam Bukla
  • ljb

    #2
    Re: Problem with API (libpq) - detailed error codes

    Adam.Bukla@inte ria.pl wrote:[color=blue]
    >...
    >
    > If function PQexec fails, I can get error code using PQresultStatus.
    > But returned codes are very generally and do not specify what really
    > happen. I can get detailed error description using PQerrorMessage
    > function, but I need detailed error code (number).
    >
    > For instance, if I create table, I would like to know, that operation
    > failed because:
    > - table already exist
    > - sql syntax error
    > - invalid columnt type
    > and so on.
    >
    > I searched documents about libpq API and even header file
    > 'internal/libpq-int.h' but I didn't found any interesting.
    >
    > I would be very gracefully for any hint.[/color]

    Appendix A of the PostgreSQL 7.4.1 Reference Manual has a list of error
    codes (5 digit numbers) and their meanings. You get at the error code
    with PQresultErrorFi eld(result, PG_DIAG_SQLSTAT E).

    Comment

    • Tom Lane

      #3
      Re: Problem with API (libpq) - detailed error codes

      Adam.Bukla@inte ria.pl (Adam Bukla) writes:[color=blue]
      > If function PQexec fails, I can get error code using PQresultStatus.
      > But returned codes are very generally and do not specify what really
      > happen. I can get detailed error description using PQerrorMessage
      > function, but I need detailed error code (number).[/color]

      Beginning in Postgres 7.4, there are standard SQLSTATE error codes
      available (see PQresultErrorFi eld), but older releases do not have them.

      regards, tom lane

      ---------------------------(end of broadcast)---------------------------
      TIP 1: subscribe and unsubscribe commands go to majordomo@postg resql.org

      Comment

      • Adam Bukla

        #4
        Re: Problem with API (libpq) - detailed error codes

        Hi!

        Thanks ljb and Tom Lane - it's exactly what I wanted.
        I read documentation to 7.3 so I couldn't find PQresultErrorFi eld function.
        I'm suprised, that such necessary functionality exist only in 7.4 version.

        Thanks once again,
        Adam Bukla

        Comment

        Working...