Как функция index scan в postgresql понимает тип индекса?
Она черпает информацию из схемы.
какие аргументы принимает, что с ними делает (ну или если она принимает в качестве аргумента
1. Не уверен, что именно такая функция в принципе есть
2. Скорее всего там две функции:
A- ищёт, в какой позиции в индексе находится нужная запись (соответственно, в аргументах передаются значения индексированных полей)
Б - читает данные с этой позиции
ведь, насколько я понимаю, функция должна работать по-разному для разных типов индексов, вызывая на этих индексах (структурах) разные алгоритмы
Вполне может быть несколько разных функций, а планировщик запроса сам знает, какую из вызвать
какие параметры она парсит из этого индекса и что с ними дальше делает
То, какие структуры данных используются - описано в документации. Обычно это разные виды деревьев.
Ну а данные там те, которые ты указал при создании индекса