[
https://issues.apache.org/jira/browse/PHOENIX-4876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16595542#comment-16595542
]
William Shen commented on PHOENIX-4876:
---------------------------------------
Maybe this has to do with how Phoenix handles deletion by full primary key
differently?
{code:java}
> EXPLAIN DELETE FROM TEST WHERE A = 0;
+--------------------+-----------------+----------------+--------------+
| PLAN | EST_BYTES_READ | EST_ROWS_READ | EST_INFO_TS |
+--------------------+-----------------+----------------+--------------+
| DELETE SINGLE ROW | 0 | 0 | 0 |
+--------------------+-----------------+----------------+--------------+
1 row selected (0.052 seconds)
> EXPLAIN DELETE FROM TEST WHERE B = 0;
+----------------------------------------------------+-----------------+----------------+--------------+
| PLAN | EST_BYTES_READ |
EST_ROWS_READ | EST_INFO_TS |
+----------------------------------------------------+-----------------+----------------+--------------+
| DELETE ROWS | null | null
| null |
| CLIENT 1-CHUNK PARALLEL 1-WAY FULL SCAN OVER TEST | null | null
| null |
| SERVER FILTER BY B = 0 | null | null
| null |
+----------------------------------------------------+-----------------+----------------+--------------+
3 rows selected (0.026 seconds)
> EXPLAIN DELETE FROM TEST WHERE A = 0 AND B = 0;
+--------------------------------------------------------------------------------+-----------------+----------------+----------------+
| PLAN
| EST_BYTES_READ | EST_ROWS_READ | EST_INFO_TS |
+--------------------------------------------------------------------------------+-----------------+----------------+----------------+
| DELETE ROWS
| 71 | 1 | 1535487124089 |
| CLIENT 1-CHUNK 1 ROWS 71 BYTES PARALLEL 1-WAY POINT LOOKUP ON 1 KEY OVER TEST
| 71 | 1 | 1535487124089 |
| SERVER FILTER BY B = 0
| 71 | 1 | 1535487124089 |
+--------------------------------------------------------------------------------+-----------------+----------------+----------------+
3 rows selected (0.024 seconds){code}
> Delete returns incorrect number of rows affected in some case
> -------------------------------------------------------------
>
> Key: PHOENIX-4876
> URL: https://issues.apache.org/jira/browse/PHOENIX-4876
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.13.0
> Reporter: William Shen
> Priority: Minor
>
> Running Phoenix 4.13 and encountering deletion of a non-existing row
> returning "1 row affected" instead of "No rows affected".
> Here is a simplified reproducible case:
> {code:java}
> > CREATE TABLE IF NOT EXISTS TEST (A BIGINT PRIMARY KEY, B BIGINT);
> No rows affected (2.524 seconds)
> > DELETE FROM TEST WHERE A = 0;
> 1 row affected (0.107 seconds)
> > DELETE FROM TEST WHERE B = 0;
> No rows affected (0.007 seconds)
> > DELETE FROM TEST WHERE A = 0 AND B = 0;
> No rows affected (0.007 seconds)
> > DELETE FROM TEST WHERE A = 0;
> 1 row affected (0.007 seconds)
> > SELECT * FROM TEST;
> +----+----+
> | A | B |
> +----+----+
> +----+----+
> No rows selected (0.023 seconds)
> > SELECT COUNT(*) FROM TEST;
> +-----------+
> | COUNT(1) |
> +-----------+
> | 0 |
> +-----------+
> 1 row selected (0.014 seconds){code}
> Expected:
> {code:java}
> > DELETE FROM TEST WHERE A = 0;
> No rows affected{code}
> Actual:
> {code:java}
> > DELETE FROM TEST WHERE A = 0;
> 1 row affected{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)