Attached 13th version of the patches. On 08.07.2019 21:09, Alexander Korotkov wrote:
I have more thoughts about planner/executor infrastructure. It appears that supporting "ORDER BY col1, col2 <-> val" is too complex for initial version of patch. Handling of "ORDER BY col" and "ORDER BY col <-> val" cases uses different code paths in optimizer.So, I'd like to limit first version of this patch to support just most simple "ORDER BY col <-> val" case. We would probably be able to enhance it even in v13 release cycle, but let's start with just simple case. I also think we can evade replacing amcanorderbyop flag with method, but introduce just new boolean flag indicating knn supports only first column.
Now patches 1-8 implement only "ORDER BY col <-> const" case. ammatchorderby() is replaced with amorderbyopfirstcol flag. Patches 9-12 contain ammatchorderby() and other features, so they may not be reviewed right now. On 08.07.2019 11:07, Thomas Munro wrote:
make check-world fails for me, and in tmp_install/log/install.log I see: btree_int2.c:97:9: error: implicit declaration of function 'int2dist' is invalid in C99 [-Werror,-Wimplicit-function-declaration] return int2dist(fcinfo); ^ btree_int2.c:97:9: note: did you mean 'int2_dist'? btree_int2.c:95:1: note: 'int2_dist' declared here int2_dist(PG_FUNCTION_ARGS) ^ 1 error generated.
Fixed. -- Nikita Glukhov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
0001-Fix-get_index_column_opclass-v13.patch.gz
Description: application/gzip
0002-Introduce-ammorderbyopfirstcol-v13.patch.gz
Description: application/gzip
0003-Enable-ORDER-BY-operator-scans-on-ordered-indexes-v13.patch.gz
Description: application/gzip
0004-Extract-structure-BTScanState-v13.patch.gz
Description: application/gzip
0005-Add-kNN-support-to-btree-v13.patch.gz
Description: application/gzip
0006-Add-btree-distance-operators-v13.patch.gz
Description: application/gzip
0007-Remove-distance-operators-from-btree_gist-v13.patch.gz
Description: application/gzip
0008-Add-regression-tests-for-kNN-btree-v13.patch.gz
Description: application/gzip
0009-Introduce-ammatchorderby-function-v13.patch.gz
Description: application/gzip
0010-Add-btree-support-of-kNN-on-non-first-column-v13.patch.gz
Description: application/gzip
0011-Allow-ammatchorderby-to-return-pathkey-sublists-v13.patch.gz
Description: application/gzip
0012-Add-support-of-array-ops-to-btree-kNN-v13.patch.gz
Description: application/gzip