Skip to content
This repository has been archived by the owner on Sep 28, 2022. It is now read-only.

Wrong/empty error codes for incorrect SQL-queries #57

Open
maxvoronov opened this issue Jun 15, 2021 · 0 comments
Open

Wrong/empty error codes for incorrect SQL-queries #57

maxvoronov opened this issue Jun 15, 2021 · 0 comments

Comments

@maxvoronov
Copy link

Hi Team,

I faced with strange behaviour when I send incorrect queries. Here are my cases:

// Direct SQL query:
> INSERT INTO fake_table (id) VALUES (1)
[42P01] ERROR: relation "fake_table" does not exist

// Query via extension:
$db = new Swoole\Coroutine\PostgreSQL();
$db->connect($dsn);    
$db->prepare('teststmt', 'INSERT INTO fake_table (id) VALUES ($1)');
echo 'Error code: ' . $db->errCode . PHP_EOL;    // Expect non-zero code
echo 'Error message: ' . $db->error . PHP_EOL;
> Error code: 0
> Error message: ERROR:  relation "fake_table" does not exist
> LINE 1: INSERT INTO fake_table (id) VALUES ($1)

// Direct SQL query:
> INSERT INTO parts (id, fake_field) VALUES (1, 'Some Data');
[42703] ERROR: column "fake_field" of relation "parts" does not exist

// Query via extension:
$db->prepare('teststmt2', 'INSERT INTO parts (id, fake_field) VALUES ($1, $2)');
> Error code: 0
> ERROR:  column "fake_field" of relation "pim_part" does not exist
> LINE 1: INSERT INTO pim_part (id, fake_field) VALUES ($1, $2)

Initially I was expecting an error code like in the PostgreSQL spec. But later I saw that type of errCode variable is integer. And I don't know how extension can pass error codes with letters (for example 42P01). Are there any mapping table or something like that? I'm not sure that this feature works correctly.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants