|
41 | 41 |
|
42 | 42 |
|
43 | 43 | typedef enum {
|
44 |
| - QUERYID = 0, DBID, EXEC_TIME_AQO, EXEC_TIME, PLAN_TIME_AQO, PLAN_TIME, |
45 |
| - EST_ERROR_AQO, EST_ERROR, NEXECS_AQO, NEXECS, TOTAL_NCOLS |
| 44 | + QUERYID = 0, EXEC_TIME_AQO, EXEC_TIME, PLAN_TIME_AQO, PLAN_TIME, |
| 45 | + EST_ERROR_AQO, EST_ERROR, NEXECS_AQO, NEXECS, DBID, TOTAL_NCOLS |
46 | 46 | } aqo_stat_cols;
|
47 | 47 |
|
48 | 48 | typedef enum {
|
49 |
| - QT_QUERYID = 0, QT_DBID, QT_QUERY_STRING, QT_TOTAL_NCOLS |
| 49 | + QT_QUERYID = 0, QT_QUERY_STRING, QT_DBID, QT_TOTAL_NCOLS |
50 | 50 | } aqo_qtexts_cols;
|
51 | 51 |
|
52 | 52 | typedef enum {
|
53 |
| - AD_FS = 0, AD_FSS, AD_DBID, AD_NFEATURES, AD_FEATURES, AD_TARGETS, AD_RELIABILITY, |
54 |
| - AD_OIDS, AD_TOTAL_NCOLS |
| 53 | + AD_FS = 0, AD_FSS, AD_NFEATURES, AD_FEATURES, AD_TARGETS, AD_RELIABILITY, |
| 54 | + AD_OIDS, AD_DBID, AD_TOTAL_NCOLS |
55 | 55 | } aqo_data_cols;
|
56 | 56 |
|
57 | 57 | typedef enum {
|
58 |
| - AQ_QUERYID = 0, AQ_DBID, AQ_FS, AQ_LEARN_AQO, AQ_USE_AQO, AQ_AUTO_TUNING, AQ_SMART_TIMEOUT, AQ_COUNT_INCREASE_TIMEOUT, |
59 |
| - AQ_TOTAL_NCOLS |
| 58 | + AQ_QUERYID = 0, AQ_FS, AQ_LEARN_AQO, AQ_USE_AQO, AQ_AUTO_TUNING, AQ_SMART_TIMEOUT, AQ_COUNT_INCREASE_TIMEOUT, |
| 59 | + AQ_DBID, AQ_TOTAL_NCOLS |
60 | 60 | } aqo_queries_cols;
|
61 | 61 |
|
62 | 62 | typedef void* (*form_record_t) (void *ctx, size_t *size);
|
@@ -424,7 +424,7 @@ aqo_query_stat(PG_FUNCTION_ARGS)
|
424 | 424 | while ((entry = hash_seq_search(&hash_seq)) != NULL)
|
425 | 425 | {
|
426 | 426 | values[QUERYID] = Int64GetDatum(entry->key.queryid);
|
427 |
| - values[DBID] = ObjectIdGetDatum(entry->key.dbid); |
| 427 | + values[DBID] = UInt64GetDatum(entry->key.dbid); |
428 | 428 | values[NEXECS] = Int64GetDatum(entry->execs_without_aqo);
|
429 | 429 | values[NEXECS_AQO] = Int64GetDatum(entry->execs_with_aqo);
|
430 | 430 | values[EXEC_TIME_AQO] = PointerGetDatum(form_vector(entry->exec_time_aqo, entry->cur_stat_slot_aqo));
|
@@ -1202,7 +1202,6 @@ aqo_query_texts(PG_FUNCTION_ARGS)
|
1202 | 1202 | Assert(DsaPointerIsValid(entry->qtext_dp));
|
1203 | 1203 | ptr = dsa_get_address(qtext_dsa, entry->qtext_dp);
|
1204 | 1204 | values[QT_QUERYID] = Int64GetDatum(entry->key.queryid);
|
1205 |
| - values[QT_DBID] = ObjectIdGetDatum(entry->key.dbid); |
1206 | 1205 | values[QT_QUERY_STRING] = CStringGetTextDatum(ptr);
|
1207 | 1206 | tuplestore_putvalues(tupstore, tupDesc, values, nulls);
|
1208 | 1207 | }
|
@@ -1829,7 +1828,7 @@ aqo_data(PG_FUNCTION_ARGS)
|
1829 | 1828 |
|
1830 | 1829 | values[AD_FS] = Int64GetDatum(entry->key.fs);
|
1831 | 1830 | values[AD_FSS] = Int32GetDatum((int) entry->key.fss);
|
1832 |
| - values[AD_DBID] = ObjectIdGetDatum(entry->key.dbid); |
| 1831 | + values[AD_DBID] = UInt64GetDatum(entry->key.dbid); |
1833 | 1832 | values[AD_NFEATURES] = Int32GetDatum(entry->cols);
|
1834 | 1833 |
|
1835 | 1834 | /* Fill values from the DSA data chunk */
|
@@ -1991,7 +1990,7 @@ aqo_queries(PG_FUNCTION_ARGS)
|
1991 | 1990 | while ((entry = hash_seq_search(&hash_seq)) != NULL)
|
1992 | 1991 | {
|
1993 | 1992 | values[AQ_QUERYID] = Int64GetDatum(entry->key.queryid);
|
1994 |
| - values[AQ_DBID] = ObjectIdGetDatum(entry->key.dbid); |
| 1993 | + values[AQ_DBID] = UInt64GetDatum(entry->key.dbid); |
1995 | 1994 | values[AQ_FS] = Int64GetDatum(entry->fs);
|
1996 | 1995 | values[AQ_LEARN_AQO] = BoolGetDatum(entry->learn_aqo);
|
1997 | 1996 | values[AQ_USE_AQO] = BoolGetDatum(entry->use_aqo);
|
@@ -2345,9 +2344,6 @@ cleanup_aqo_database(bool gentle, int *fs_num, int *fss_num)
|
2345 | 2344 | List *actual_fss = NIL;
|
2346 | 2345 | ListCell *lc;
|
2347 | 2346 |
|
2348 |
| - if (entry->key.dbid != (uint64) MyDatabaseId && entry->key.queryid != 0) |
2349 |
| - continue; |
2350 |
| - |
2351 | 2347 | /* Scan aqo_data for any junk records related to this FS */
|
2352 | 2348 | hash_seq_init(&hash_seq2, data_htab);
|
2353 | 2349 | while ((dentry = hash_seq_search(&hash_seq2)) != NULL)
|
@@ -2751,14 +2747,14 @@ aqo_query_texts_update(PG_FUNCTION_ARGS)
|
2751 | 2747 | bool res = false;
|
2752 | 2748 |
|
2753 | 2749 | /* Do nothing if any arguments are NULLs */
|
2754 |
| - if ((PG_ARGISNULL(QT_QUERYID) || PG_ARGISNULL(QT_QUERY_STRING))) |
| 2750 | + if ((PG_ARGISNULL(0) || PG_ARGISNULL(1))) |
2755 | 2751 | PG_RETURN_BOOL(false);
|
2756 | 2752 |
|
2757 |
| - if (!(queryid = PG_GETARG_INT64(QT_QUERYID))) |
| 2753 | + if (!(queryid = PG_GETARG_INT64(0))) |
2758 | 2754 | /* Do nothing for default feature space */
|
2759 | 2755 | PG_RETURN_BOOL(false);
|
2760 | 2756 |
|
2761 |
| - str = PG_GETARG_TEXT_PP(QT_QUERY_STRING); |
| 2757 | + str = PG_GETARG_TEXT_PP(1); |
2762 | 2758 | str_len = VARSIZE_ANY_EXHDR(str) + 1;
|
2763 | 2759 | if (str_len > querytext_max_size)
|
2764 | 2760 | str_len = querytext_max_size;
|
|
0 commit comments