Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit450b47c

Browse files
author
a.pervushina
committed
Fix aqo_data init neighbours
1 parent7a12279 commit450b47c

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

‎storage.c‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1337,6 +1337,8 @@ aqo_data_store(uint64 fs, int fss, OkNNrdata *data, List *reloids)
13371337
entry->cols=data->cols;
13381338
entry->rows=data->rows;
13391339
entry->nrels=list_length(reloids);
1340+
entry->neighbour_refs.next=NULL;
1341+
entry->neighbour_refs.prev=NULL;
13401342

13411343
size=_compute_data_dsa(entry);
13421344
entry->data_dp=dsa_allocate0(data_dsa,size);
@@ -1391,10 +1393,14 @@ aqo_data_store(uint64 fs, int fss, OkNNrdata *data, List *reloids)
13911393
* Find prev fs with the same fss
13921394
*/
13931395

1396+
elog(LOG,"aqo_data_store1 entry->fss %ld",entry->key.fss);
1397+
13941398
if (!found) {
13951399
LWLockAcquire(&aqo_state->neighbours_lock,LW_EXCLUSIVE);
13961400

13971401
prev= (NeighboursEntry*)hash_search(fss_neighbours,&key.fss,HASH_ENTER,&found);
1402+
if (found)
1403+
elog(LOG,"aqo_data_store2 prev->data->key.fss %ld key.fss %ld",prev->data->key.fss,key.fss);
13981404

13991405
/* A new element contains backward link to the first element list and
14001406
* the first element contains toward link to the new element.
@@ -1406,6 +1412,8 @@ aqo_data_store(uint64 fs, int fss, OkNNrdata *data, List *reloids)
14061412
entry->neighbour_refs.prev=prev->data;
14071413
}
14081414
prev->data=entry;
1415+
if (prev->data->neighbour_refs.next)
1416+
elog(LOG,"aqo_data_store3 prev->data->key.fss %ld prev->data->neighbour_refs.next %ld",prev->data->key.fss,prev->data->neighbour_refs.next->key.fss);
14091417
aqo_state->neighbours_changed= true;
14101418
LWLockRelease(&aqo_state->neighbours_lock);
14111419
}
@@ -1771,9 +1779,17 @@ _aqo_data_clean(uint64 fs)
17711779

17721780
if (has_prev)
17731781
entry->neighbour_refs.prev->neighbour_refs.next=has_next ?entry->neighbour_refs.next :NULL;
1782+
1783+
if (has_prev&&has_next)
1784+
elog(LOG,"_aqo_data_clean1 entry->neighbour_refs.prev->neighbour_refs.next: %ld, entry->key.fss: %ld",entry->neighbour_refs.prev->neighbour_refs.next->key.fss,entry->neighbour_refs.prev->key.fss);
1785+
17741786
if (has_next)
17751787
entry->neighbour_refs.next->neighbour_refs.prev=has_prev ?entry->neighbour_refs.prev :NULL;
17761788

1789+
if (has_prev&&has_next)
1790+
elog(LOG,"_aqo_data_clean2 entry->neighbour_refs.next->neighbour_refs.prev: %ld, entry->key.fss: %ld",entry->neighbour_refs.next->neighbour_refs.prev->key.fss,entry->neighbour_refs.next->key.fss);
1791+
1792+
17771793
/* Fix or remove neighbours htab entry*/
17781794
LWLockAcquire(&aqo_state->neighbours_lock,LW_EXCLUSIVE);
17791795
fss_htab_entry= (NeighboursEntry*)hash_search(fss_neighbours,&entry->key.fss,HASH_FIND,&found);
@@ -1787,6 +1803,7 @@ _aqo_data_clean(uint64 fs)
17871803
{
17881804
hash_search(fss_neighbours,&entry->key.fss,HASH_REMOVE,NULL);
17891805
}
1806+
17901807
/*
17911808
* We found element in Neibours hash table and made change:
17921809
* either delete element of table or replace its value.
@@ -2339,6 +2356,7 @@ cleanup_aqo_database(bool gentle, int *fs_num, int *fss_num)
23392356
if (has_next)
23402357
entry->neighbour_refs.next->neighbour_refs.prev=has_prev ?entry->neighbour_refs.prev :NULL;
23412358

2359+
23422360
/* Fix or remove neighbours htab entry*/
23432361
LWLockAcquire(&aqo_state->neighbours_lock,LW_EXCLUSIVE);
23442362
fss_htab_entry= (NeighboursEntry*)hash_search(fss_neighbours,&key.fss,HASH_FIND,&found);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp