| From: | Justin Pryzby <pryzby(at)telsasoft(dot)com> |
|---|---|
| To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
| Cc: | Alexey Bashtanov <bashtanov(at)imap(dot)cc>, Franck Verrot <franck(at)verrot(dot)fr>, pgsql-hackers(at)postgresql(dot)org |
| Subject: | [PATCH]: Allow errors in parameter values to be reported during the BIND phase itself.. |
| Date: | 2021-01-04 17:09:39 |
| Message-ID: | 20210104170939.GH9712@telsasoft.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
For example:
$ python3.5 -c "import pg; db=pg.DB(); q = db.query(\"SET log_parameter_max_length_on_error=-1;\"); db.prepare('p', 'SELECT \$1::smallint'); db.query_prepared('p',66666);"
2021-01-03 02:21:04.547 CST [20157] ERROR: value "66666" is out of range for type smallint
2021-01-03 02:21:04.547 CST [20157] CONTEXT: unnamed portal with parameters: $1 = '66666'
2021-01-03 02:21:04.547 CST [20157] STATEMENT: SELECT $1::smallint
When there are many bind params, this can be useful to determine which is out
of range. Think 900 int/smallint columns, or less-wide tables being inserted
multiple rows at a time with VALUES(),(),()...
Of course, this isn't as good as showing the column name, so I might pursue
Tom's suggestion for that at some point.
--
Justin
| Attachment | Content-Type | Size |
|---|---|---|
| 0001-Allow-errors-in-parameter-values-to-be-reported-duri.patch | text/x-diff | 7.9 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dean Rasheed | 2021-01-04 17:24:08 | Bug in numeric_power() if exponent is INT_MIN |
| Previous Message | David G. Johnston | 2021-01-04 16:46:32 | Re: set_config() documentation clarification |