I’m loading a fixture generated from sqlite into postgresql database using manage.py loaddata. The loading failed when it reaches a ManyToManyField with a long name.
I traced into the database adapter: usr/local/lib/python2.6/dist-packages/django/db/backends/postgresql_psycopg2/base.py
line 44
return self.cursor.execute(query, args)
the value of query
is correct: 'SELECT CURRVAL('"a_long_long_table_name_id_seq"')'
but then it failed with DatabaseError: «a_long_long_table_name_i» is not a sequence
Obviously the name is cut off after executing this statement, but I can’t trace deeper.
django version: 1.2
How to fix this problem?
asked Jan 11, 2011 at 20:18
2
I found the answer from http://archives.postgresql.org/pgsql-novice/2003-06/msg00239.php, postgres table name has a maximum limit of 63. To increase that limit, one has to change its source code and set NAMEDATALEN
to higher value. But the problem is, in django, it’s really easy to exceed this limit because the association table names for many-to-many fields usually are in this format: application_name_model1_name_model2_name
Anyway, I decided to shorten the model names and not re-compile the source code.
answered Apr 2, 2011 at 23:00
lcltjlcltj
1,57814 silver badges13 bronze badges
You know that you can use app labels and db_table to specifically tell the database what name should be used as a table name, right? This means that you shouldn’t need to shorten the names of Models, but keep them descriptive.
As far as I know, Postgres will truncate the name of a database table (and fields) on creation, using a function that will always yield the same name. This should mean that only the fixtures need to be modified. Determine the actual name within Postgres, and do a find replace on the fixture data.
answered Apr 3, 2011 at 0:39
Josh SmeatonJosh Smeaton
47.8k24 gold badges129 silver badges164 bronze badges
But, when I use single quote with the sequence_name, then it works fine :-
But as per difference between single quote and double quote in sql, double quotes can be used with any user defined sql object. Solution:
TL;DR: Use single quotes, like in
The argument to
is not an identifier, but has type
:
is a convenience type that internally is identical to the unsigned 4-byte object identifier type
, but has a type input function that accepts a table, index or sequence name as input.
Table of contents
- Why I am not able to refer to my sequence with double quotes in postgres?
- Postgres sequence not incrementing
- How to check if an sequence is above a certain number and if not change it in Postgres
Why I am not able to refer to my sequence with double quotes in postgres?
Question:
I have created sequence in postgres.
postgres=# create sequence my_sequence start 5 minvalue 3 increment 1 cycle;
CREATE SEQUENCE
Now I am trying to query the next value from the sequence.
postgres=# select nextval("my_sequence");
ERROR: column "my_sequence" does not exist
LINE 1: select nextval("my_sequence");
But it’s giving me error, that sequence doesn’t exists. But, when I use single quote with the sequence_name, then it works fine :-
postgres=# select nextval('my_sequence');
nextval
---------
5
(1 row)
But as per difference between single quote and double quote in sql, double quotes can be used with any user defined sql object. so, accordingly my_sequence is also user-defined object. So, why I am not able to access it ?
Solution:
TL;DR: Use single quotes, like in
SELECT nextval('my_sequence');
The argument to
nextval
is not an identifier, but has type
regclass
:
df nextval
List of functions
Schema | Name | Result data type | Argument data types | Type
------------+---------+------------------+---------------------+--------
pg_catalog | nextval | bigint | regclass | normal
(1 row)
regclass
is a convenience type that internally is identical to the unsigned 4-byte object identifier type
oid
, but has a type input function that accepts a table, index or sequence name as input.
So you can call
nextval
with the
name
of the table as parameter, and a string is surrounded by single, not double quotes.
How to create an id in a sequence in postgres sql?, As of now the view is not having the sequence id generator. I need to provide id_, generated in a sequence for each row I copy from view to
Postgres sequence not incrementing
Question:
I created a PostgreSQL sequence on a PostgreSQL 10.7 dB called
markush_seq
I read from the seq
select nextval('markush_seq’)` )
using a java web service:
When I run the web service on eclipse (using java 1.8.161) or call the sequence direct from SQL developer, it works fine and the sequence increments by 1 each time eg:
http://localhost:8086/wipdbws/read-markush-seq
21767823690
21767823691
21767823692
However when I run the webservice on AWS (which uses java 1.8.252) and read from the seq using:
https://aws-location/wipdbws/read-markush-seq
I get the sequence number returned as eg:
21767823692
21767823702
21767823693
21767823703
21767823694
21767823704
The sequence in AWS appears to be a combination of 2 incrementing sequences, 10 apart.
It’s the same java code, the only thing that has changed is:
-
The location of the webservice
a. AWS – USWEST
b. Eclipse — London
-
The java version:
a. 1.8.161 in London
b. 1.8.252 in US WEST
The seq details are:
SELECT * FROM information_schema.sequences
where sequence_name='markush_seq';
select * from pg_sequences where sequencename='markush_seq';
Any suggestion appreciated.
Solution:
Likely due to multiple sessions accessing the sequence and sequence cache settings.
Documentation says:
although multiple sessions are guaranteed to allocate distinct
sequence values, the values might be generated out of sequence when
all the sessions are considered. For example, with a cache setting of
10, session A might reserve values 1..10 and return nextval=1, then
session B might reserve values 11..20 and return nextval=11 before
session A has generated nextval=2. Thus, with a cache setting of one
it is safe to assume that nextval values are generated sequentially;
with a cache setting greater than one you should only assume that the
nextval values are all distinct, not that they are generated purely
sequentially. Also, last_value will reflect the latest value reserved
by any session, whether or not it has yet been returned by nextval.
Is setval nextval increment on PostgreSQL sequence thread safe?, The same could be achieved using the generate_series() function. The drawback would be that the series is not guaranteed to be in sequence since
How to check if an sequence is above a certain number and if not change it in Postgres
Question:
I have a problem where my SQL sequence has to be above a certain number to fix a unique constraint error. Now I started to write an if-statement that checks for a certain number and if it’s below it should be increased to a certain number. The statement is for Postgres.
I got the separate parts running but the connection over if is throwing an error and I don’t know why.
First for selecting the current number:
SELECT nextval('mySequence')
Then to update the number:
SELECT setval('mySequence', targetNumber, true)
The full statement looks something like this in my tries:
IF (SELECT nextval('mySequence') < targetNumber)
THEN (SELECT setval('mySequence', targetNumber, true))
END IF;
and the error is
ERROR: syntax error at »IF«
Can someone explain to me what I did wrong there because the error message isn’t giving me much to work with? I would appreciate your help.
Solution 1:
Try this:
SELECT setval('mySequence', targetNumber, true)
WHERE (SELECT nextval('mySequence') < targetNumber) is true;
Solution 2:
You can use postgres functions if you want to use
IF
statement.
You can try something like this:
CREATE SEQUENCE seq_test_id_seq;
CREATE TABLE seq_test(
id integer NOT NULL DEFAULT nextval('seq_test_id_seq'),
name VARCHAR
);
CREATE OR REPLACE FUNCTION seq_test_function(target_number bigint)
RETURNS void
LANGUAGE 'plpgsql'
VOLATILE
PARALLEL UNSAFE
COST 100
AS $BODY$
DECLARE
seq_val INTEGER;
BEGIN
SELECT nextval('seq_test_id_seq') INTO seq_val;
RAISE NOTICE 'NEXT SEQUENCE [%]', seq_val;
IF (seq_val < target_number) THEN
SELECT setval('seq_test_id_seq', target_number, true) INTO seq_val;
RAISE NOTICE 'SEQUENCE VALUE MODIFIED [%]', seq_val;
END IF;
END;
$BODY$;
Then call the procedure:
select seq_test_function(10);
Postgres BIGSERIAL does not share sequence when inserts are, Remove dummy_pk from foreign tables so that destination table does not get NULL nor value and so fall backs to DEFAULT or NULL if no DEFAULT
This issue can’t be reproduced in DBAL and the data is persisted to the database. Meanwhile in ORM, the data is not persisted and there is no exception thrown.
This is the way i do it. I started a new symfony project with pdo_pgsql
driver and create a new Entity.
namespace AppBundleEntity; use DoctrineORMMapping as ORM; /** * @ORMTable(name="a") * @ORMEntity(repositoryClass="AppBundleRepositoryARepository") */ class A { /** * @ORMColumn(name="id", type="integer") * @ORMId * @ORMGeneratedValue(strategy="IDENTITY") */ private $id; /** * @ORMColumn(name="name", type="string", length=255) */ private $name; // ....
Then I run bin/console doctrine:database:create
and bin/console doctrine:schema:create --force
. As the result, I got a table named «a» in my database. I run a query in the database to show the fields and sequence of table «a».
SELECT table_name, column_name, column_default from information_schema.columns where table_name='a';
table_name | column_name | column_default
------------+-------------+-------------------------------
a | id | nextval('a_id_seq'::regclass)
a | name |
I modified the DefaultController.php
to insert into table «a».
public function indexAction(Request $request) { // It's working with DBAL //$conn = $this->get('database_connection'); //$conn->insert('b', array('name' => 'last')); // It's not working with ORM $em = $this->getDoctrine()->getManager(); $a = new A(); $a->setName('asd'); try { $em->persist($a); $em->flush($a); } catch (Exception $e) { dump($e->getMessage()); throw $e; } dump($em->getRepository('AppBundle:A')->findAll()); // replace this example code with whatever you need return $this->render('default/index.html.twig', [ 'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR, ]); }
It’s working as expected. The data is persisted to table «a».
Then I rename my table «a» to «b» in my entity. @ORMTable(name="a")
to @ORMTable(name="b")
. I run SQL query from command line to update the table name. ALTER TABLE a RENAME TO b;
. Then I try again and there is no error or exception at all and the data is not persisted. Here is my dev.log
.
[2017-03-13 19:09:20] request.INFO: Matched route "homepage". {"route":"homepage","route_parameters":{"_controller":"AppBundle\Controller\DefaultController::indexAction","_route":"homepage"},"request_uri":"http://test.dev/app_dev.php/","method":"GET"} []
[2017-03-13 19:09:20] security.INFO: Populated the TokenStorage with an anonymous Token. [] []
[2017-03-13 19:09:20] doctrine.DEBUG: "START TRANSACTION" [] []
[2017-03-13 19:09:20] doctrine.DEBUG: INSERT INTO b (name) VALUES (?) {"1":"asd"} []
[2017-03-13 19:09:20] doctrine.DEBUG: "COMMIT" [] []
[2017-03-13 19:09:20] doctrine.DEBUG: SELECT t0.id AS id_1, t0.name AS name_2 FROM b t0 [] []
[2017-03-13 19:09:21] request.INFO: Matched route "_wdt". {"route":"_wdt","route_parameters":{"_controller":"web_profiler.controller.profiler:toolbarAction","token":"e4d4c5","_route":"_wdt"},"request_uri":"http://test.dev/app_dev.php/_wdt/e4d4c5","method":"GET"} []
This is the version I used for this project.
doctrine/annotations v1.2.7
doctrine/cache v1.6.1
doctrine/collections v1.3.0
doctrine/common v2.6.2
doctrine/dbal v2.5.12
doctrine/doctrine-bundle 1.6.7
doctrine/doctrine-cache-bundle 1.3.0
doctrine/inflector v1.1.0
doctrine/instantiator 1.0.5
doctrine/lexer v1.0.1
doctrine/orm v2.5.6
If you’re getting an error that reads something like ‘currval of sequence “sequence1” is not yet defined in this session‘ when calling the currval()
function in PostgreSQL, it’s probably because nextval()
hasn’t yet been called for that sequence in the current session.
If you want to avoid this error, only call the currval()
function when you know that nextval()
has been called against that sequence at least once in the current session.
Alternatively, you could call the lastval()
function instead, which doesn’t report on any particular sequence – it reports on the last time nextval()
was used in the current session, regardless of which sequence was used.
Example of Error
To demonstrate the error, let’s create a sequence:
CREATE SEQUENCE Sequence1;
Now let’s immediately call currval()
against that sequence:
SELECT currval('Sequence1');
Result:
ERROR: currval of sequence "sequence1" is not yet defined in this session
As expected, we get an error. If nextval()
hasn’t been used against the specified sequence in the current session, there’ll be no value for currval()
.
Solution 1
The first solution is to ensure that nextval()
has already been applied against the sequence at least once in the current session.
Example:
SELECT nextval('Sequence1');
Result:
1
Now that we’ve advanced the sequence in this session, we can go ahead and call currval()
against it:
SELECT currval('Sequence1');
Result:
1
This time it returned the current value of the sequence without error.
Note that it’s the current session that’s relevant. Even if nextval()
has been used against the sequence in a different session, we’ll still get the error if it hasn’t been used in the current session.
To demonstrate this, I’ll open a new session and call currval()
against the sequence again:
SELECT currval('Sequence1');
Result:
ERROR: currval of sequence "sequence1" is not yet defined in this session
As expected, I get an error again. Once again, we need to advance the sequence in this session before we can call currval()
against it.
SELECT nextval('Sequence1');
Result:
2
Now the current value is 2
. Let’s call currval()
again:
SELECT currval('Sequence1');
Result:
2
This time the result is returned without an error.
For the sake of completeness, here’s what happens if I switch back to my original session and call currval()
from there:
SELECT currval('Sequence1');
Result:
1
It’s back at 1
. This is because currval()
only reports on the sequence in the current session. It returns a session-local value, which gives a predictable answer whether or not other sessions have executed nextval()
since the current session did.
Solution 2
Another way to deal with this issue is to call lastval()
instead of currval()
. Note that this function works differently, so it’s important to know the difference.
The lastval()
function doesn’t report on any particular sequence – it reports on the last time nextval()
was used in the current session, regardless of which sequence was used. It therefore doesn’t require the name of a sequence (it doesn’t require or accept any arguments).
Here’s what I get when running the function in my first session:
SELECT lastval();
Result:
1
And here it is in my second session:
SELECT lastval();
Result:
2
Obviously, this is no good if you’re only interested in a specific sequence, because it may return the result of a different sequence, but it’s still good to know that this function exists, and it may be useful in certain cases.
Error Code | Condition Name |
---|---|
Class 00 — Successful Completion | |
00000 |
successful_completion |
Class 01 — Warning | |
01000 |
warning |
0100C |
dynamic_result_sets_returned |
01008 |
implicit_zero_bit_padding |
01003 |
null_value_eliminated_in_set_function |
01007 |
privilege_not_granted |
01006 |
privilege_not_revoked |
01004 |
string_data_right_truncation |
01P01 |
deprecated_feature |
Class 02 — No Data (this is also a warning class per the SQL standard) | |
02000 |
no_data |
02001 |
no_additional_dynamic_result_sets_returned |
Class 03 — SQL Statement Not Yet Complete | |
03000 |
sql_statement_not_yet_complete |
Class 08 — Connection Exception | |
08000 |
connection_exception |
08003 |
connection_does_not_exist |
08006 |
connection_failure |
08001 |
sqlclient_unable_to_establish_sqlconnection |
08004 |
sqlserver_rejected_establishment_of_sqlconnection |
08007 |
transaction_resolution_unknown |
08P01 |
protocol_violation |
Class 09 — Triggered Action Exception | |
09000 |
triggered_action_exception |
Class 0A — Feature Not Supported | |
0A000 |
feature_not_supported |
Class 0B — Invalid Transaction Initiation | |
0B000 |
invalid_transaction_initiation |
Class 0F — Locator Exception | |
0F000 |
locator_exception |
0F001 |
invalid_locator_specification |
Class 0L — Invalid Grantor | |
0L000 |
invalid_grantor |
0LP01 |
invalid_grant_operation |
Class 0P — Invalid Role Specification | |
0P000 |
invalid_role_specification |
Class 0Z — Diagnostics Exception | |
0Z000 |
diagnostics_exception |
0Z002 |
stacked_diagnostics_accessed_without_active_handler |
Class 20 — Case Not Found | |
20000 |
case_not_found |
Class 21 — Cardinality Violation | |
21000 |
cardinality_violation |
Class 22 — Data Exception | |
22000 |
data_exception |
2202E |
array_subscript_error |
22021 |
character_not_in_repertoire |
22008 |
datetime_field_overflow |
22012 |
division_by_zero |
22005 |
error_in_assignment |
2200B |
escape_character_conflict |
22022 |
indicator_overflow |
22015 |
interval_field_overflow |
2201E |
invalid_argument_for_logarithm |
22014 |
invalid_argument_for_ntile_function |
22016 |
invalid_argument_for_nth_value_function |
2201F |
invalid_argument_for_power_function |
2201G |
invalid_argument_for_width_bucket_function |
22018 |
invalid_character_value_for_cast |
22007 |
invalid_datetime_format |
22019 |
invalid_escape_character |
2200D |
invalid_escape_octet |
22025 |
invalid_escape_sequence |
22P06 |
nonstandard_use_of_escape_character |
22010 |
invalid_indicator_parameter_value |
22023 |
invalid_parameter_value |
22013 |
invalid_preceding_or_following_size |
2201B |
invalid_regular_expression |
2201W |
invalid_row_count_in_limit_clause |
2201X |
invalid_row_count_in_result_offset_clause |
2202H |
invalid_tablesample_argument |
2202G |
invalid_tablesample_repeat |
22009 |
invalid_time_zone_displacement_value |
2200C |
invalid_use_of_escape_character |
2200G |
most_specific_type_mismatch |
22004 |
null_value_not_allowed |
22002 |
null_value_no_indicator_parameter |
22003 |
numeric_value_out_of_range |
2200H |
sequence_generator_limit_exceeded |
22026 |
string_data_length_mismatch |
22001 |
string_data_right_truncation |
22011 |
substring_error |
22027 |
trim_error |
22024 |
unterminated_c_string |
2200F |
zero_length_character_string |
22P01 |
floating_point_exception |
22P02 |
invalid_text_representation |
22P03 |
invalid_binary_representation |
22P04 |
bad_copy_file_format |
22P05 |
untranslatable_character |
2200L |
not_an_xml_document |
2200M |
invalid_xml_document |
2200N |
invalid_xml_content |
2200S |
invalid_xml_comment |
2200T |
invalid_xml_processing_instruction |
22030 |
duplicate_json_object_key_value |
22031 |
invalid_argument_for_sql_json_datetime_function |
22032 |
invalid_json_text |
22033 |
invalid_sql_json_subscript |
22034 |
more_than_one_sql_json_item |
22035 |
no_sql_json_item |
22036 |
non_numeric_sql_json_item |
22037 |
non_unique_keys_in_a_json_object |
22038 |
singleton_sql_json_item_required |
22039 |
sql_json_array_not_found |
2203A |
sql_json_member_not_found |
2203B |
sql_json_number_not_found |
2203C |
sql_json_object_not_found |
2203D |
too_many_json_array_elements |
2203E |
too_many_json_object_members |
2203F |
sql_json_scalar_required |
2203G |
sql_json_item_cannot_be_cast_to_target_type |
Class 23 — Integrity Constraint Violation | |
23000 |
integrity_constraint_violation |
23001 |
restrict_violation |
23502 |
not_null_violation |
23503 |
foreign_key_violation |
23505 |
unique_violation |
23514 |
check_violation |
23P01 |
exclusion_violation |
Class 24 — Invalid Cursor State | |
24000 |
invalid_cursor_state |
Class 25 — Invalid Transaction State | |
25000 |
invalid_transaction_state |
25001 |
active_sql_transaction |
25002 |
branch_transaction_already_active |
25008 |
held_cursor_requires_same_isolation_level |
25003 |
inappropriate_access_mode_for_branch_transaction |
25004 |
inappropriate_isolation_level_for_branch_transaction |
25005 |
no_active_sql_transaction_for_branch_transaction |
25006 |
read_only_sql_transaction |
25007 |
schema_and_data_statement_mixing_not_supported |
25P01 |
no_active_sql_transaction |
25P02 |
in_failed_sql_transaction |
25P03 |
idle_in_transaction_session_timeout |
Class 26 — Invalid SQL Statement Name | |
26000 |
invalid_sql_statement_name |
Class 27 — Triggered Data Change Violation | |
27000 |
triggered_data_change_violation |
Class 28 — Invalid Authorization Specification | |
28000 |
invalid_authorization_specification |
28P01 |
invalid_password |
Class 2B — Dependent Privilege Descriptors Still Exist | |
2B000 |
dependent_privilege_descriptors_still_exist |
2BP01 |
dependent_objects_still_exist |
Class 2D — Invalid Transaction Termination | |
2D000 |
invalid_transaction_termination |
Class 2F — SQL Routine Exception | |
2F000 |
sql_routine_exception |
2F005 |
function_executed_no_return_statement |
2F002 |
modifying_sql_data_not_permitted |
2F003 |
prohibited_sql_statement_attempted |
2F004 |
reading_sql_data_not_permitted |
Class 34 — Invalid Cursor Name | |
34000 |
invalid_cursor_name |
Class 38 — External Routine Exception | |
38000 |
external_routine_exception |
38001 |
containing_sql_not_permitted |
38002 |
modifying_sql_data_not_permitted |
38003 |
prohibited_sql_statement_attempted |
38004 |
reading_sql_data_not_permitted |
Class 39 — External Routine Invocation Exception | |
39000 |
external_routine_invocation_exception |
39001 |
invalid_sqlstate_returned |
39004 |
null_value_not_allowed |
39P01 |
trigger_protocol_violated |
39P02 |
srf_protocol_violated |
39P03 |
event_trigger_protocol_violated |
Class 3B — Savepoint Exception | |
3B000 |
savepoint_exception |
3B001 |
invalid_savepoint_specification |
Class 3D — Invalid Catalog Name | |
3D000 |
invalid_catalog_name |
Class 3F — Invalid Schema Name | |
3F000 |
invalid_schema_name |
Class 40 — Transaction Rollback | |
40000 |
transaction_rollback |
40002 |
transaction_integrity_constraint_violation |
40001 |
serialization_failure |
40003 |
statement_completion_unknown |
40P01 |
deadlock_detected |
Class 42 — Syntax Error or Access Rule Violation | |
42000 |
syntax_error_or_access_rule_violation |
42601 |
syntax_error |
42501 |
insufficient_privilege |
42846 |
cannot_coerce |
42803 |
grouping_error |
42P20 |
windowing_error |
42P19 |
invalid_recursion |
42830 |
invalid_foreign_key |
42602 |
invalid_name |
42622 |
name_too_long |
42939 |
reserved_name |
42804 |
datatype_mismatch |
42P18 |
indeterminate_datatype |
42P21 |
collation_mismatch |
42P22 |
indeterminate_collation |
42809 |
wrong_object_type |
428C9 |
generated_always |
42703 |
undefined_column |
42883 |
undefined_function |
42P01 |
undefined_table |
42P02 |
undefined_parameter |
42704 |
undefined_object |
42701 |
duplicate_column |
42P03 |
duplicate_cursor |
42P04 |
duplicate_database |
42723 |
duplicate_function |
42P05 |
duplicate_prepared_statement |
42P06 |
duplicate_schema |
42P07 |
duplicate_table |
42712 |
duplicate_alias |
42710 |
duplicate_object |
42702 |
ambiguous_column |
42725 |
ambiguous_function |
42P08 |
ambiguous_parameter |
42P09 |
ambiguous_alias |
42P10 |
invalid_column_reference |
42611 |
invalid_column_definition |
42P11 |
invalid_cursor_definition |
42P12 |
invalid_database_definition |
42P13 |
invalid_function_definition |
42P14 |
invalid_prepared_statement_definition |
42P15 |
invalid_schema_definition |
42P16 |
invalid_table_definition |
42P17 |
invalid_object_definition |
Class 44 — WITH CHECK OPTION Violation | |
44000 |
with_check_option_violation |
Class 53 — Insufficient Resources | |
53000 |
insufficient_resources |
53100 |
disk_full |
53200 |
out_of_memory |
53300 |
too_many_connections |
53400 |
configuration_limit_exceeded |
Class 54 — Program Limit Exceeded | |
54000 |
program_limit_exceeded |
54001 |
statement_too_complex |
54011 |
too_many_columns |
54023 |
too_many_arguments |
Class 55 — Object Not In Prerequisite State | |
55000 |
object_not_in_prerequisite_state |
55006 |
object_in_use |
55P02 |
cant_change_runtime_param |
55P03 |
lock_not_available |
55P04 |
unsafe_new_enum_value_usage |
Class 57 — Operator Intervention | |
57000 |
operator_intervention |
57014 |
query_canceled |
57P01 |
admin_shutdown |
57P02 |
crash_shutdown |
57P03 |
cannot_connect_now |
57P04 |
database_dropped |
57P05 |
idle_session_timeout |
Class 58 — System Error (errors external to PostgreSQL itself) | |
58000 |
system_error |
58030 |
io_error |
58P01 |
undefined_file |
58P02 |
duplicate_file |
Class 72 — Snapshot Failure | |
72000 |
snapshot_too_old |
Class F0 — Configuration File Error | |
F0000 |
config_file_error |
F0001 |
lock_file_exists |
Class HV — Foreign Data Wrapper Error (SQL/MED) | |
HV000 |
fdw_error |
HV005 |
fdw_column_name_not_found |
HV002 |
fdw_dynamic_parameter_value_needed |
HV010 |
fdw_function_sequence_error |
HV021 |
fdw_inconsistent_descriptor_information |
HV024 |
fdw_invalid_attribute_value |
HV007 |
fdw_invalid_column_name |
HV008 |
fdw_invalid_column_number |
HV004 |
fdw_invalid_data_type |
HV006 |
fdw_invalid_data_type_descriptors |
HV091 |
fdw_invalid_descriptor_field_identifier |
HV00B |
fdw_invalid_handle |
HV00C |
fdw_invalid_option_index |
HV00D |
fdw_invalid_option_name |
HV090 |
fdw_invalid_string_length_or_buffer_length |
HV00A |
fdw_invalid_string_format |
HV009 |
fdw_invalid_use_of_null_pointer |
HV014 |
fdw_too_many_handles |
HV001 |
fdw_out_of_memory |
HV00P |
fdw_no_schemas |
HV00J |
fdw_option_name_not_found |
HV00K |
fdw_reply_handle |
HV00Q |
fdw_schema_not_found |
HV00R |
fdw_table_not_found |
HV00L |
fdw_unable_to_create_execution |
HV00M |
fdw_unable_to_create_reply |
HV00N |
fdw_unable_to_establish_connection |
Class P0 — PL/pgSQL Error | |
P0000 |
plpgsql_error |
P0001 |
raise_exception |
P0002 |
no_data_found |
P0003 |
too_many_rows |
P0004 |
assert_failure |
Class XX — Internal Error | |
XX000 |
internal_error |
XX001 |
data_corrupted |
XX002 |
index_corrupted |