PostgreSQL 7.3.4 Documentation
Prev |  | Next

# ecpg

## Name

ecpg -- embedded SQL C preprocessor

## Synopsis

`ecpg` [option...] file...

## Description

`ecpg` is the embedded SQL preprocessor for C programs. It converts C programs with embedded SQL statements to normal C code by replacing the SQL invocations with special function calls. The output files can then be processed with any C compiler tool chain.

`ecpg` will convert each input file given on the command line to the corresponding C output file. Input files preferrably have the extension `.pgc`, in which case the extension will be replaced by `.c` to determine the output file name. If the extension of the input file is not `.pgc`, then the output file name is computed by appending .c to the full file name. The output file name can also be overridden using the -o option.

This reference page does not describe the embedded SQL language. See the PostgreSQL 7.3.4 Programmer's Guide for that.

## Options

`ecpg` accepts the following command-line arguments:

-c

  Automatically generate C code from SQL code. Currently, this works for EXEC SQL TYPE.

-D symbol

  Define a C preprocessor symbol.

-I directory

  Specify an additional include path, used to find files included via EXEC SQL INCLUDE. Defaults are `.` (current directory), `/usr/local/include`, the PostgreSQL include directory which is defined at compile time (default: `/usr/local/pgsql/include`), and `/usr/include`, in that order.

-o filename

  Specifies that ecpg should write all its output to the given filename.

-t

  Turn on autocommit of transactions. In this mode, each query is automatically committed unless it is inside an explicit transaction block. In the default mode, queries are committed only when `EXEC SQL COMMIT` is issued.

-v

  Print additional information including the version and the include path.

---help

  Show a brief summary of the command usage, then exit.

--version

  Output version information, then exit.

## Notes

When compiling the preprocessed C code files, the compiler needs to be able to find the ECPG header files in the PostgreSQL include directory. Therefore, one might have to use the -I option when invoking the compiler (e.g., -I/usr/local/pgsql/include).

Programs using C code with embedded SQL have to be linked against the `libecpg` library, for example using the flags -L/usr/local/pgsql/lib -lecpg.

The value of either of these directories that is appropriate for the installation can be found out using pg_config.

## Examples

If you have an embedded SQL C source file named `prog1.pgc`, you can create an executable program using the following sequence of commands:

    ecpg prog1.pgc
    cc -I/usr/local/pgsql/include -c prog1.c
    cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg

## See Also

PostgreSQL Programmer's Guide for a more detailed description of the embedded SQL interface

Prev | Home | Next
dropuser | Up | pg_config