[
https://issues.apache.org/jira/browse/HAWQ-273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15071339#comment-15071339
]
ASF GitHub Bot commented on HAWQ-273:
-------------------------------------
Github user liming01 commented on the pull request:
https://github.com/apache/incubator-hawq/pull/211#issuecomment-167185478
Yes, only 2 functions:
- _SPI_prepare_plan(): you can find that before calling pg_plan_queries(),
it already fetch a new snapshot. And between them, it just some simple code,
which is impossible to lock. So we don't need to re-fetch one.
- exec_parse_message(): From the comment in the code, it just called for
syntax check.
/**
* Even though we do not store the plan, we want to perform
planning
* to know if SQL syntax is supported.
*/
> Concurrent read committed SELECT return 0 rows for AO table which is ALTERed
> with REORGANIZE by other transaction
> -----------------------------------------------------------------------------------------------------------------
>
> Key: HAWQ-273
> URL: https://issues.apache.org/jira/browse/HAWQ-273
> Project: Apache HAWQ
> Issue Type: Bug
> Components: Transaction
> Reporter: Ming LI
> Assignee: Ming LI
>
> testdb=# DROP TABLE tbl_isolation;
> DROP TABLE
> testdb=# CREATE TABLE tbl_isolation (a INT, b int, c int) WITH
> (appendonly=true);
> CREATE TABLE
> testdb=# INSERT INTO tbl_isolation SELECT generate_series(1, 100000),
> generate_series(1, 100000), generate_series(1, 100000);
> INSERT 0 100000
> •
> Thread A:
> testdb=# BEGIN transaction isolation level SERIALIZABLE;
> BEGIN
> testdb=# ALTER TABLE tbl_isolation set with ( reorganize='true') distributed
> randomly;
> ALTER TABLE
> •
> Thread B:
> testdb=# BEGIN transaction isolation level read committed;
> BEGIN
> testdb=# select count(*) from tbl_isolation;
> •
> Thread A:
> testdb=# commit;
> COMMIT
> •
> •
> Thread B:
> testdb=# select count(*) from tbl_isolation;
> count
> -------
> 0
> (1 row)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)