@@ -100,7 +100,7 @@ static bool _aqo_stat_remove(uint64 queryid);
100100static bool _aqo_queries_remove (uint64 queryid );
101101static bool _aqo_qtexts_remove (uint64 queryid );
102102static bool _aqo_data_remove (data_key * key );
103- static bool neirest_neighbor (double * * matrix ,int old_rows ,double * neighbor ,int cols );
103+ static bool nearest_neighbor (double * * matrix ,int old_rows ,double * neighbor ,int cols );
104104static double fs_distance (double * a ,double * b ,int len );
105105
106106PG_FUNCTION_INFO_V1 (aqo_query_stat );
@@ -143,7 +143,7 @@ update_fss_ext(uint64 fs, int fss, OkNNrdata *data, List *reloids)
143143/*
144144 * Forms ArrayType object for storage from simple C-array matrix.
145145 */
146- ArrayType *
146+ static ArrayType *
147147form_matrix (double * matrix ,int nrows ,int ncols )
148148{
149149Datum * elems ;
@@ -375,8 +375,8 @@ aqo_query_stat(PG_FUNCTION_ARGS)
375375MemoryContext per_query_ctx ;
376376MemoryContext oldcontext ;
377377Tuplestorestate * tupstore ;
378- Datum values [TOTAL_NCOLS + 1 ];
379- bool nulls [TOTAL_NCOLS + 1 ];
378+ Datum values [TOTAL_NCOLS ];
379+ bool nulls [TOTAL_NCOLS ];
380380HASH_SEQ_STATUS hash_seq ;
381381StatEntry * entry ;
382382
@@ -408,13 +408,11 @@ aqo_query_stat(PG_FUNCTION_ARGS)
408408
409409MemoryContextSwitchTo (oldcontext );
410410
411- memset (nulls ,0 ,TOTAL_NCOLS + 1 );
411+ memset (nulls ,0 ,TOTAL_NCOLS );
412412LWLockAcquire (& aqo_state -> stat_lock ,LW_SHARED );
413413hash_seq_init (& hash_seq ,stat_htab );
414414while ((entry = hash_seq_search (& hash_seq ))!= NULL )
415415{
416- memset (nulls ,0 ,TOTAL_NCOLS + 1 );
417-
418416values [QUERYID ]= Int64GetDatum (entry -> queryid );
419417values [NEXECS ]= Int64GetDatum (entry -> execs_without_aqo );
420418values [NEXECS_AQO ]= Int64GetDatum (entry -> execs_with_aqo );
@@ -1507,8 +1505,8 @@ fs_distance(double *a, double *b, int len)
15071505return res ;
15081506}
15091507
1510- bool
1511- neirest_neighbor (double * * matrix ,int old_rows ,double * neibour ,int cols )
1508+ static bool
1509+ nearest_neighbor (double * * matrix ,int old_rows ,double * neibour ,int cols )
15121510{
15131511int i ;
15141512for (i = 0 ;i < old_rows ;i ++ )
@@ -1538,7 +1536,9 @@ build_knn_matrix(OkNNrdata *data, const OkNNrdata *temp_data, double *features)
15381536
15391537for (i = 0 ;i < temp_data -> rows ;i ++ )
15401538{
1541- if (k < aqo_K && !neirest_neighbor (data -> matrix ,old_rows ,data -> matrix [i ],data -> cols ))
1539+ if (k < aqo_K && !nearest_neighbor (data -> matrix ,old_rows ,
1540+ temp_data -> matrix [i ],
1541+ data -> cols ))
15421542{
15431543memcpy (data -> matrix [k ],temp_data -> matrix [i ],data -> cols * sizeof (double ));
15441544data -> rfactors [k ]= temp_data -> rfactors [i ];
@@ -1902,8 +1902,8 @@ aqo_queries(PG_FUNCTION_ARGS)
19021902MemoryContext per_query_ctx ;
19031903MemoryContext oldcontext ;
19041904Tuplestorestate * tupstore ;
1905- Datum values [AQ_TOTAL_NCOLS + 1 ];
1906- bool nulls [AQ_TOTAL_NCOLS + 1 ];
1905+ Datum values [AQ_TOTAL_NCOLS ];
1906+ bool nulls [AQ_TOTAL_NCOLS ];
19071907HASH_SEQ_STATUS hash_seq ;
19081908QueriesEntry * entry ;
19091909
@@ -1935,12 +1935,12 @@ aqo_queries(PG_FUNCTION_ARGS)
19351935
19361936MemoryContextSwitchTo (oldcontext );
19371937
1938+ memset (nulls ,0 ,AQ_TOTAL_NCOLS );
1939+
19381940LWLockAcquire (& aqo_state -> queries_lock ,LW_SHARED );
19391941hash_seq_init (& hash_seq ,queries_htab );
19401942while ((entry = hash_seq_search (& hash_seq ))!= NULL )
19411943{
1942- memset (nulls ,0 ,AQ_TOTAL_NCOLS + 1 );
1943-
19441944values [AQ_QUERYID ]= Int64GetDatum (entry -> queryid );
19451945values [AQ_FS ]= Int64GetDatum (entry -> fs );
19461946values [AQ_LEARN_AQO ]= BoolGetDatum (entry -> learn_aqo );
@@ -2142,7 +2142,7 @@ aqo_queries_find(uint64 queryid, QueryContextData *ctx)
21422142
21432143/*
21442144 * Function for update and save value of smart statement timeout
2145- * for query inaqu_queries table
2145+ * for query inaqo_queries table
21462146 */
21472147bool
21482148update_query_timeout (uint64 queryid ,int64 smart_timeout )
@@ -2515,6 +2515,8 @@ aqo_cardinality_error(PG_FUNCTION_ARGS)
25152515LWLockAcquire (& aqo_state -> queries_lock ,LW_SHARED );
25162516LWLockAcquire (& aqo_state -> stat_lock ,LW_SHARED );
25172517
2518+ memset (nulls ,0 ,AQE_TOTAL_NCOLS * sizeof (nulls [0 ]));
2519+
25182520hash_seq_init (& hash_seq ,queries_htab );
25192521while ((qentry = hash_seq_search (& hash_seq ))!= NULL )
25202522{
@@ -2523,8 +2525,6 @@ aqo_cardinality_error(PG_FUNCTION_ARGS)
25232525int64 nexecs ;
25242526int nvals ;
25252527
2526- memset (nulls ,0 ,AQE_TOTAL_NCOLS * sizeof (nulls [0 ]));
2527-
25282528sentry = (StatEntry * )hash_search (stat_htab ,& qentry -> queryid ,
25292529HASH_FIND ,& found );
25302530if (!found )
@@ -2609,6 +2609,8 @@ aqo_execution_time(PG_FUNCTION_ARGS)
26092609LWLockAcquire (& aqo_state -> queries_lock ,LW_SHARED );
26102610LWLockAcquire (& aqo_state -> stat_lock ,LW_SHARED );
26112611
2612+ memset (nulls ,0 ,ET_TOTAL_NCOLS * sizeof (nulls [0 ]));
2613+
26122614hash_seq_init (& hash_seq ,queries_htab );
26132615while ((qentry = hash_seq_search (& hash_seq ))!= NULL )
26142616{
@@ -2618,8 +2620,6 @@ aqo_execution_time(PG_FUNCTION_ARGS)
26182620int nvals ;
26192621double tm = 0 ;
26202622
2621- memset (nulls ,0 ,ET_TOTAL_NCOLS * sizeof (nulls [0 ]));
2622-
26232623sentry = (StatEntry * )hash_search (stat_htab ,& qentry -> queryid ,
26242624HASH_FIND ,& found );
26252625if (!found )