On 2022-10-29 19:19:28 +0800, jacktby@gmail.com wrote:
> I'm trying to add a new index, but when I finish it, I use “ create index
> xxx_index on t1 using xxx(a); ”,it gives me access method "my_index" does not
> exist
> And I don't know where this message is from, can you grve me its position?
See https://www.postgresql.org/docs/current/sql-createindex.html
The syntax for CREATE INDEX is
CREATE INDEX ON table_name [ USING method ] ( column_name ... )
You use USING to specify the method (e.g. btree or gin), not the table
and/or columns. The columns (or expressions come in parentheses after
that.
So if you wanted an index on column a of table t1 you would simply
write:
CREATE INDEX ON t1 (a);
Or if you have a function xxx and you want a function based index on
xxx(a) of that table:
CREATE INDEX ON t1 (xxx(a));
(You can specify the name of the index, but why would you?)
> I do like this. I add oid in pg_am.dat and pg_proc.dat for my index.
> And I add codes in contrib and backend/access/myindex_name, is there
> any other places I need to add some infos?
What? Why are you doing these things?
hp
--
_ | Peter J. Holzer | Story must make more sense than reality.
|_|_) | |
| | | hjp@hjp.at | -- Charles Stross, "Creative writing
__/ | http://www.hjp.at/ | challenge!"