- This describes an embedded
SQL in
C
- The package is installed with the
Postgres> distribution.
-
-
- Permission is granted to copy and use in the same way as you are allowed
- to copy and use the rest of
PostgreSQL .
-
-
+ This describes the embedded
SQL package for
+
Postgres . It works with
+
C and
C++ . It was written by
+
Postgres> distribution, and carries a similar license.
- Embedded
SQL has some small advantages over other ways
- queries. It takes care of all the tedious moving of information to and
- from variables in your
C program.
- support this embedded language.
+ Embedded
SQL has advantages over other methods
+ for handling
SQL queries. It takes care of
+ the tedious passing of information to and from variables in your
+
RDBMS packages support this embedded language.
-
There is an ANSI-standard describing how the embedded language should
- work.
ecpg was designed to meet this standard
- as much as possible. So it is
- possible to port programs with embedded
SQL written for
- other
RDBMS packages to
-
Postgres and thus promoting the spirit of free
- software.
+ There is an ANSI standard describing how the embedded language
+ should work.
ecpg was designed to match
+ this standard as much as possible. It is possible to port embedded
+
SQL programs written for other
The Concept
- You write your program in
C with some
- For declaring variables that can be used in
-
SQL statements you need to
- put them in a special declare section.
- You use a special syntax for the
SQL queries.
+ You write your program in
C/C++ with special
+
SQL constructs. When declaring variables to be
+ used in
SQL statements, you need to put them in a
+ special declare> section. You use a special syntax for the
- Before compiling you run the file through
- preprocessor and it converts the
SQL statements you used
- to function
- calls with the variables used as arguments. Both variables that are used
- as input to the
SQL statements and variables that will
- contain the
- result are passed.
+ Before compiling you run the file through the embedded
+
SQL C preprocessor and it
+ converts the
SQL statements you used to function
+ calls with the variables used as arguments. Both query input and
+ result output variables are passed.
- Then you compile and at link time you link with a special library that
- contains the functions used. These functions (actually it is mostly one
- single function) fetches the information from the arguments, performs
- the
SQL query using the ordinary interface
- (libpq ) and puts back
- the result in the arguments dedicated for output.
-
-
- Then you run your program and when the control arrives to
- statement the
SQL statement is performed against
- the database and you
- can continue with the result.
+ After compiling, you must link with a special library that contains
+ needed functions. These functions fetch information from the
+ arguments, perform the
SQL query using the
+ libpq interface, and put the result in the
+ arguments specified for output.
- This section describes how to use
the ecpg tool .
+ This section describes how to use
ecpg .
Preprocessor
- The preprocessor is called
ecpg .
- After installation it resides in
- the
Postgres bin/ directory.
+ The preprocessor is called
ecpg .
After
+ installation it resides in the
Postgres
+ bin/ directory.
Library
- The
ecpg library is called
- libecpg.a or
- libecpg.so . Additionally, the library
- uses the libpq library for communication to the
-
Postgres server
so you will
-
have to link your program with -lecpg -lpq .
+ The
ecpg library is called
+ libecpg.a or libecpg.so .
+ Additionally, the library uses the libpq
+ library for communication to the
+
Postgres server
. You will have to link
+
your program using -lecpg -lpq .
- The library has some methods that are "hidden" but that could prove very
- useful sometime .
+ The library has some methods that are "hidden" but may prove
+ useful.
ECPGdebug(int on , FILE
- *stream )
- turns on debug logging if called with the first argument non-zero.
- Debug logging is done on stream .
-
Most SQL statement logs its arguments and result .
+ *stream ) turns on debug
+ logging if called with the first argument non-zero. Debug
+ logging is done on stream . Most
+
SQL statement log their arguments and results.
- The most important one (ECPGdo )
- that is called on almost all
SQL
- statements logs both its expanded string,
- i.e. the string
- with all the input variables inserted, and the result from the
- This can be very useful when searching for errors
- in your
SQL statements.
+ The most important function , ECPGdo , logs
+ all
SQL statements with both the expanded
+ string, i.e. the string with all the input variables inserted,
+ and the result from the
Postgres
+ server. This can be very useful when searching for errors in
Error handling
- To
be able to detect errors from the Postgres
- server you include a line like
+ To
detect errors from the Postgres
+ server, include a line like:
- exec sql include sqlca;
+exec sql include sqlca;
- in the include section of your file. This will define a struct and a
-
variable with the name sqlca as following :
+ in the include section of your file. This will define a struct and
+
a variable with the name sqlca as follows :
struct sqlca
{
- If an error occured in the last
SQL statement
- will be non-zero. If
sqlca.sqlcode is less that 0
- then this is
- some kind of serious error, like the database definition does not match
- the query given. If it is bigger than 0 then this is a normal error like
- the table did not contain the requested row.
+ If an error occured in the last
SQL statement.
+
sqlca.sqlcode will be non-zero. If
+
sqlca.sqlcode is less that 0, this is a
+ serious error, like the database definition does not match the
+ query. If it is greater than 0, it is a normal error like the
+ table did not contain the requested row.
- sqlca.sqlerrm.sqlerrmc will contain a string that describes the error.
- The string ends with the line number
- in the source file.
+
sqlca.sqlerrm.sqlerrmc will contain a string
+ that describes the error. The string ends with the line number in
+ the source file.
-12, Out of memory in line %d.
- Does not normally occur. This is a sign that your virtual memory is
+ Should not normally occur. This indicates your virtual memory is
exhausted.
-200, Unsupported type %s on line %d.
- Does not normally occur. This is a sign that the preprocessor has
- generated something that the library does not know about. Perhaps you
- are running incompatible versions of the preprocessor and the library.
+ Should not normally occur. This indicates the preprocessor has
+ generated something that the library does not know about.
+ Perhaps you are running incompatible versions of the
+ preprocessor and the library.
-201, Too many arguments line %d.
- This means that
Postgres has
returned more
- arguments than we have
- matching variables. Perhaps you have forgotten a couple of the host
- variables in the INTO :var1,:var2 -list.
+ This means that
Postgres has
+ returned more arguments than we have matching variables.
+ Perhaps you have forgotten a couple of the host variables in
+ the INTO :var1,:var2 -list.
-202, Too few arguments line %d.
- This means that
Postgres has
returned fewer
- arguments than we have
- host variables. Perhaps you have too many host variables in the
- INTO :var1,:var2-list.
+ This means that
Postgres has
+ returned fewer arguments than we have host variables. Perhaps
+ you have too many host variables in the INTO
+ :var1,:var2-list.
-203, Too many matches line %d.
- This means that the query has returned several line s but the
- variables specified are no arrays. The SELECT you mad e
- probably was not unique.
+ This means the query has returned several row s but the
+ variables specified are not arrays. Th e
+ SELECT command was not unique.
-204, Not correctly formatted int type: %s line %d.
- This means that the host variable is of an int type and the fiel d
- in the
Postgres database is of another type and
- contains a value that cannot be interpreted as an int .
- The library uses strtol
- for this conversion.
+ This means the host variable is of type int an d
+ the field in the
Postgres database
+ is of another type and contains a value that cannot be
+ interpreted as an int . The library uses
+ strtol() for this conversion.
-205, Not correctly formatted unsigned type: %s line %d.
- This means that the host variable is of an unsigned int type and
- the field in the
Postgres database is of another
- type and contains a
- value that cannot be interpreted as an unsigned int . The library
- uses strtoul for this conversion.
+ This means the host variable is of type unsigned
+ int and the field in the
+
Postgres database is of another type
+ and contains a value that cannot be interpreted as an
+ unsigned int . The library uses
+ strtoul() for this conversion.
-206, Not correctly formatted floating point type: %s line %d.
- This means that the host variable is of a float type and
- the field in the
Postgres database
is of another
- type and contains a
- value that cannot be interpreted as an float . The library
- uses strtod for this conversion.
+ This means the host variable is of type float and
+ the field in the
Postgres database
+ is of another type and contains a value that cannot be
+ interpreted as a float . The library uses
+ strtod() for this conversion.
-207, Unable to convert %s to bool on line %d.
- This means that the host variable is of a bool type and
- the field in the
Postgres database
is neither 't'
- nor 'f'.
+ This means the host variable is of type bool and
+ the field in the
Postgres database
+ is neither 't' nor 'f'.
-220, No such connection %s in line %d.
- The program tries to access a connection that does not exist.
+ The program tried to access a connection that does not exist.
-221, Not connected in line %d.
- The program tries to access a connection that does exist but is not open.
+ The program tried to access a connection that does exist but is
+ not open.
-401, Error in transaction processing line %d.
-
Postgres signal
led to us that we cannot start,
+
Postgres signal
ed that we cannot start,
commit or rollback the transaction.
This is a "normal" error that tells you that what you are quering cannot
- be found or we have gone through the cursor.
+ be found or you are at the end of the cursor.
- What will never be included and why or what cannot be done with this
- concept.
+ What will never be included and why it cannot be done.
- Oracle's single tasking possibility
+ Oracle's single tasking
- Oracle version 7.0 on AIX 3 uses the OS-supported locks on the shared
- memory segments and allows the application designer to link a n
- application in a so called single tasking way. Instead of starting one
- client process per application process both the database part and the
- application part is run in the same process. In later versions of Oracle
- this is no longer supported.
+ Oracle version 7.0 on AIX 3 uses OS-supported locks in shared
+ memory that allow an application designer to link an applicatio n
+ in a "single tasking" way. Instead of starting one client
+ process per application process, both the database part and the
+ application part run in the same process. In later versions of
+ Oracle this is no longer supported.
This would require a total redesign of the
-
Postgres access model and
- that effort can not justify the performance gained .
+
Postgres access model and
the
+ performance gain does not justify the effort .
Porting From Other RDBMS Packages
- The design of
ecpg follows SQL standard. So
- porting from a standard RDBMS should not be a problem. Unfortunately there
- is no such thing as a standard RDBMS. So
ecpg
- also tries to understand syntax additions as long as they do not create
- conflicts with the standard.
+ The design of
ecpg follows the SQL
+ standard. Porting from a standard RDBMS should not be a problem.
+ Unfortunately there is no such thing as a standard RDBMS. Therefore
+
ecpg tries to understand syntax
+ extensions as long as they do not create conflicts with the
+ standard.
- The following list shows all the known incompatibilities. If you find one
- not listed please notify
- Note, however, that we list only incompatibilities from
-
a precompiler of another RDBMS to
ecpg and not
-
additional ecpg features that these RDBMS do not
- have .
+ The following list shows all the known incompatibilities. If you
+ find one not listed please notify
+ we list only incompatibilities from a precompiler of another RDBMS
+
ecpg features that these RDBMS do not
+ support .
- Syntax of FETCH command
+ Syntax of FETCH
- The standard syntax of the FETCH command is:
+ The standard syntax for FETCH is:
- FETCH [direction] [amount] IN|FROM cursor name .
+ FETCH [direction] [amount] IN|FROM cursor .
ORACLE , however, does not use the keywords IN
- resp. FROM. This feature cannot be added since it would create parsing
+ or FROM. This feature cannot be added since it would create parsing
conflicts.
For the Developer
- This section is for those who want to develop the
- describes how the things work. The ambition is to make this section
- contain things for those that want to have a look inside and the section
- on How to use it should be enough for all normal questions.
-
- So, read this before looking at the internals of the
- you are not interested in how it really works, skip this section.
+ This section explain how
ecpg
+ works internally. It contains valuable information to help users
+ understand how to use
ecpg .
ToDo List
- This version the preprocessor has some flaws:
+ This version of the preprocessor has some flaws:
Library functions
- to_date et al. do not exists. But then
Postgres
- has some good conversion routines itself. So you probably won't miss these.
+ to_date et al. does not exist. However,
+
Postgres has some good conversion
+ routines so you probably won't miss them.
- Structures ans unions
+ Structures and unions
- Structures and unions have to be defined in the declare section.
+ Structures and unions have to be defined in the
+ declare> section.
message 'no data found'
- The error message for "no data" in an exec sql insert select from statement
- has to be 100.
+ The error message for "no data" in:
+exec sql insert select from statement
+
+ has to be 100>.
sqlwarn[6]
- sqlwarn[6] should be 'W' if the PRECISION or SCALE value specified in a SET
- DESCRIPTOR statement will be ignored.
+ sqlwarn[6] should be W> if the PRECISION>
+ or SCALE> value specified in a SET
+ DESCRIPTOR> statement was ignored.
The Preprocessor
- The first four lines written to the output are constant additions by ecpg .
- These are two comments and two include lines necessary for the interface to th e
- library.
+ The first four lines written by ecpg to the output are fixed lines .
+ Two are comments and two are include lines necessary to interfac e
+ to the library.
- Then the preprocessor works in one pass only, reading the input file and
- writing to the output as it goes along. Normally it just echoes
- everything to the output without looking at it further.
+ Then the preprocessor reads through the file and writes output.
+ Normally it just echoes everything to the output.
- When it comes to an EXEC SQL statements it intervenes and
- changes them depending on what it is.
- The EXEC SQL statement can be one of these:
+ When it sees an EXEC SQL statement, it
+ intervenes and changes it. The EXEC SQL
+ statement can be one of these:
Declare sections
- Declare sections begins with
+ Declare> sections begin with:
exec sql begin declare section;
- and ends with
+ and end with:
exec sql end declare section;
- In the section only variable declarations are allowed. Every variable
- declare within this section is also entered in a list of variables
- indexed on their name together with the corresponding type.
+ In this section only variable declarations are allowed. Every
+ variable declared within this section is stored in a list
+ of variables indexed by name together with its corresponding
+ type.
- In particular the definition of a structure or union also has to be listed
- inside a declare section. Otherwise
ecpg cannot
- handle these types since it simply does not know the definition.
+ In particular the definition of a structure or union also must
+ be listed inside a declare> section. Otherwise
+
ecpg cannot handle these types since
+ it does not know the definition.
- The declaration is echoed to the file to make the variable a normal
- C-variable also .
+ The declaration is also echoed to the file to make it a normal
+ C variable .
VARCHAR var[180];
- is converted into
+ is converted into:
struct varchar_var { int len; char arr[180]; } var;
exec sql include filename;
- Note that this is NOT the same as
+ Note that this is NOT the same as:
#include <filename.h>
- Instead the file specified is parsed by
ecpg
- itself. So the contents of the specified file is included in the resulting C
- code. This way you are able to specify EXEC SQL commands in an include file.
+ Instead the file specified is parsed by
+
ecpg so the contents of the file are
+ included in the resulting C code. This way you are able to
+ specify EXEC SQL commands in an include file.
-
Finally the userid and the password. Each may be a constant text, a
- character variable or a chararcter string.
+ Finally, the userid and password may be a constant text, a
+ character variable, or a character string.
Disconnect statements
- A disconnect statement looks lo ke:
+ A disconnect statement looks li ke:
exec sql disconnect [connection target ];
-
Open cursor statement
exec sql open cursor ;
- and is ignore and not copied from the output.
+ and is not copied to the output. Instead, the cursor's
+ DECLARE> command is used because it opens the cursor
+ as well.
Commit statement
- A commit statement looks like
+ A commit statement looks like:
exec sql commit;
- and is translated on the output to
-ECPGcommit(__LINE__);
-
Rollback statement
- A rollback statement looks like
+ A rollback statement looks like:
exec sql rollback;
- and is translated on the output to
-ECPGrollback(__LINE__);
-
-
Other statements
- Other
SQL statements are other statements that start with
- exec sql and ends with ; .
- Everything inbetween is treated
- as an
SQL statement and parsed for variable substitution.
+ Other
SQL statements are used by
+ starting with exec sql and ending with
+ ; . Everything in between is treated as an
+
SQL statement and parsed for variable
+ substitution.
- Variable substitution occur when a symbol starts with a colon
- (: ). Then a variable with that name is looked for among
- the variables that were previously declared within a declare section and
- depending on the variable being for input or output the pointers to the
- variables are written to the output to allow for access by the function.
+ Variable substitution occurs when a symbol starts with a colon
+ (: ). The variable with that name is looked
+ up among the variables that were previously declared within a
+ declare> section. Depending on whether the variable is
+ being use for input or output, a pointer to the variable is
+ output to allow access by the function.
- For every variable that is part of the
SQL request
- the function gets another ten arguments:
+ For every variable that is part of the
SQL
+ query, the function gets other arguments:
The type as a special symbol.
A pointer to the value or a pointer to the pointer.
The size of the variable if it is a char or varchar.
- N umber of elements in the array (for array fetches).
- The offset to the next element in the array (for array fetches)
+ The n umber of elements in the array (for array fetches).
+ The offset to the next element in the array (for array fetches).
The type of the indicator variable as a special symbol.
A pointer to the value of the indicator variable or a pointer to the pointer of the indicator variable.
0.
Number of elements in the indicator array (for array fetches).
- The offset to the next element in the indicator array (for array fetches)
+ The offset to the next element in the indicator array
+ (for array fetches).
ECPGt_int,&(result),1L,1L,sizeof(int),
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
#line 147 "foo.pgc"
-
- (t he indentation in this manual is added for readability and not
- something that the preprocessor can do .)
+ (T he indentation in this manual is added for readability and not
+ something the preprocessor does .)
The Library
- The most important function in the library is the ECPGdo
- function. It takes a variable amount of arguments. Hopefully we will not run
- into machines with limits on the amount of variables that can b e
- accepted by a vararg function. This could easily add up to 50 or so
- arguments.
+ The most important function in the library is
+ ECPGdo . It takes a variable number of
+ arguments. Hopefully there are no computers that limit th e
+ number of variables that can be accepted by a varargs() function. This
+ can easily add up to 50 or so arguments.
A line number
- This is a line number for the original line used in error messages only.
+ This is a line number of the original line; used in error messages only.
A string
- This is the
SQL request that is to be issued.
- This request is modified
- by the input variables, i.e. the variables that where not known at
- compile time but are to be entered in the request. Where the variable s
- should go the string contains ";" .
+ This is the
SQL query that is to be issued.
+ It is modified by the input variables, i.e. the variables that
+ where not known at compile time but are to be entered in the
+ query. Where the variables should go the string contain s
+ ? .
Input variables
- As described in the section about the preprocessor every input variable
+ As described in the section about the preprocessor, every input variable
gets ten arguments.
Output variables
- As described in the section about the preprocessor every input variable
+ As described in the section about the preprocessor, every input variable
gets ten arguments. These variables are filled by the function.
- All the
SQL statements are performed in one transaction
- unless you issue a commit transaction. To get this auto-transaction going
- the first statement or the first after statement after a commit or rollback
- always begins a transaction. To disable this feature per default use the
- -t option on the commandline.
+ All
SQL statements are performed in one
+ transaction unless you issue a commit transaction. To accomplish
+ this auto-transaction behavior, the first statement and the first
+ statement after a commit or rollback always begins a new transaction. To
+ disable this feature, use the -t command-line
+ option.
- To be completed: entries describing the other entries.
-
# This is the italian version of some errors. Errors not in this file
# are handled by the parent errors.properties file.
#
-# Daniele Arduini deis.unibo.it>
-# Wed Aug 9 12:18:31 CEST 2000
+# Daniele Arduini cinetica.it >
+# Tue Aug 21 09:26:47 CEST 2001
#
+postgresql.drv.version:Si è verificato un errore interno. Si consiglia di ricompilare il driver.
postgresql.con.auth:L'autenticazione di tipo {0} non è supportata. Verificare che nel file di configurazione pg_hba.conf sia presente l'indirizzo IP o la sotto-rete del client, e che lo schema di autenticazione utilizzato sia supportato dal driver.
postgresql.con.authfail:Si è verificato un errore durante la richiesta di autenticazione.
postgresql.con.call:I ``Callable Statements'' non sono supportati al momento.
postgresql.con.creobj:Fallita la creazione dell'oggetto per {0} {1}
postgresql.con.failed:Il tentativo di connessione è fallito perché {0}
-#postgresql.con.fathom:Unable to fathom update count {0}
+postgresql.con.fathom:Impossibile il conteggio di ``update'' {0}
postgresql.con.garbled:Ricevuti dati incomprensibili.
-postgresql.con.ioerror:Si è verificato un errore di I/O nella spedizione di dati al backend - {0}
+postgresql.con.ioerror:Si è verificato un errore di I/O nella spedizione di dati al processo server - {0}
postgresql.con.kerb4:L'autenticazione di tipo ``Kerberos 4'' non è supportata da questo driver.
postgresql.con.kerb5:L'autenticazione di tipo ``Kerberos 5'' non è supportata da questo driver.
postgresql.con.multres:Impossibile gestire gruppi multipli di risultati.
postgresql.fp.error:La chiamata a FastPath ha restituito {0}
postgresql.fp.expint:Chiamata Fastpath {0} - Nessun risultato restituito mentre ci si aspettava un intero.
postgresql.fp.protocol:Errore nel protocollo FastPath: {0}
-postgresql.fp.send:Fallita la spedizione della chiamata fastpath {0} {1}
+postgresql.fp.send:Fallito l'invio della chiamata fastpath {0} {1}
postgresql.fp.unknown:La funzione fastpath {0} è sconosciuta.
postgresql.geo.box:Fallita la conversione di un ``box'' - {0}
postgresql.geo.circle:Fallita la conversione di un ``circle'' - {0}
postgresql.geo.line:Fallita la conversione di una ``line'' - {0}
postgresql.geo.lseg:Fallita la conversione di un ``lseg'' - {0}
-postgresql.geo.path:Impossibile stabilire se il ``path'' è aperto o chiuso.
+postgresql.geo.path:Impossibile stabilire se il percorso è aperto o chiuso.
postgresql.geo.point:Fallita la conversione di un ``point'' - {0}
-postgresql.jvm.version:Il file ``postgresql.jar'' non contiene le classi JDBC corrette per questa JVM. Provare a ricompilarle. Se il problema persiste, tentare di forzare la versione fornendola nella linea di comando con l'opzione -Djava.version=1.1 or -Djava.version=1.2\nL'eccezione ricevuta è stata {0}
+postgresql.jvm.version:Il file ``postgresql.jar'' non contiene le classi JDBC corrette per questa JVM. Provare a ricompilarle. Se il problema persiste, tentare di forzare la versione fornendo sulla linea di comando l'opzione -Djava.version=1.1 oppure -Djava.version=1.2\nL'eccezione ricevuta è stata {0}
postgresql.lo.init:Inizializzazione di LargeObject API fallita.
postgresql.money:Fallita la conversione di un ``money'' - {0}.
+postgresql.noupdate:Questo ResultSet non è modificabile.
+postgresql.notsensitive:Questo ResultSet non risente delle modifiche in tempo reale dopo che la query è stata eseguita.
+postgresql.psqlnotimp:Il processo server al momento non supporta questa funzionalità.
postgresql.prep.is:InputStream come parametro non è supportato
postgresql.prep.param:Nessun valore specificato come parametro {0}.
-postgresql.prep.range:Indice di parametro fuori dall'intervallo .
+postgresql.prep.range:Indice del parametro fuori dall'intervallo ammissibile .
postgresql.prep.type:Valore di tipo sconosciuto.
-postgresql.res.badbigdec:Cattivo BigDecimal {0}
-postgresql.res.badbyte:Cattivo Byte {0}
-postgresql.res.baddate:Cattivo Date Format a {0} in {1}
-postgresql.res.baddouble:Cattivo Double {0}
-postgresql.res.badfloat:Cattivo Float {0}
-postgresql.res.badint:Cattivo Integer {0}
-postgresql.res.badlong:Cattivo Long {0}
-postgresql.res.badshort:Cattivo Short {0}
-postgresql.res.badtime:Cattivo Time {0}
-postgresql.res.badtimestamp:Cattivo Timestamp Format a {0} in {1}
+postgresql.res.badbigdec:BigDecimal non corretto {0}
+postgresql.res.badbyte:Byte non corretto {0}
+postgresql.res.baddate:Date Format non corretto a {0} in {1}
+postgresql.res.baddouble:Double non corretto {0}
+postgresql.res.badfloat:Float non corretto {0}
+postgresql.res.badint:Integer non corretto {0}
+postgresql.res.badlong:Long non corretto {0}
+postgresql.res.badshort:Short non corretto {0}
+postgresql.res.badtime:Time non corretto {0}
+postgresql.res.badtimestamp:Timestamp Format non corretto a {0} in {1}
postgresql.res.colname:Colonna denominata {0} non trovata.
-postgresql.res.colrange:Indice di colonna fuori dall'intervallo.
-postgresql.serial.interface:Impossibile serializzare una interfaccia.
+postgresql.res.colrange:Indice di colonna fuori dall'intervallo ammissibile .
+postgresql.serial.interface:Impossibile serializzare un' interfaccia.
postgresql.serial.namelength:La lunghezza dei nomi per Class & Package non può essere superiore a 32 caratteri. {0} è di {1} caratteri.
postgresql.serial.noclass:Nessuna classe trovata per {0}.
-postgresql.serial.table:La tabella per {0} non è nel database. Contattare il DBA , visto che il database è in uno stato incosistente.
+postgresql.serial.table:La tabella per {0} non è nel database. Contattare l'amministratore del DB , visto che il database è in uno stato incosistente.
postgresql.serial.underscore:Il nome di una classe non può contenere il carattere ``_''. E` stato fornito {0}.
postgresql.stat.batch.empty:La sequenza di operazioni è vuota. Non c'è niente da eseguire.
postgresql.stat.batch.error:L'operazione {0} {1} della sequenza è stata annullata.
postgresql.stat.maxfieldsize:Fallito un tentativo a setMaxFieldSize() - verrà utilizzato il valore predefinito a tempo di compilazione.
postgresql.stat.noresult:Nessun risultato è stato restituito dalla query.
-postgresql.stat.result:Un risultato è stato restituito dallo statement, quando ci si aspettava nulla.
+postgresql.stat.result:Un risultato è stato restituito dallo statement, quando non ci si aspettava nulla.
postgresql.stream.eof:Il backend ha interrotto la connessione. Probabilmente la tua azione ha causato la sua uscita.
postgresql.stream.flush:Si è verificato un errore di I/O mentre si svuotava il buffer d'uscita - {0}
postgresql.stream.ioerror:Si è verificato un errore di I/O mentre si leggevano dati dal backend - {0}
postgresql.stream.toomuch:Troppi dati ricevuti.
-postgresql.unusual:Qualcosa di insolito si è verificato causando il fallimento del driver. Per favore riferire allo sviluppatore questa eccezione: {0}
+postgresql.unusual:Qualcosa di insolito si è verificato causando il fallimento del driver. Per favore riferire all'autore del driver questa eccezione: {0}
postgresql.unimplemented:Questo metodo non è stato ancora implementato.
postgresql.unexpected:Un risultato inaspettato è stato ricevuto dalla query.