Skip to content

Fix create_graph failing when ag_catalog is not in search_path - #2505

Open
NotHimmel wants to merge 1 commit into
apache:masterfrom
NotHimmel:fix/qualify-graphid-ops-master
Open

Fix create_graph failing when ag_catalog is not in search_path#2505
NotHimmel wants to merge 1 commit into
apache:masterfrom
NotHimmel:fix/qualify-graphid-ops-master

Conversation

@NotHimmel

Copy link
Copy Markdown

Fixes #2504

create_index_on_column() passed "graphid_ops" as an unqualified operator
class name, so it was resolved against the caller's search_path. Whenever
ag_catalog was not on the search_path, creating a label failed with

  ERROR:  operator class "graphid_ops" does not exist for access method "btree"

even for a fully qualified call such as

  SELECT ag_catalog.create_graph('g');

The error is misleading: the operator class does exist, it is simply not
visible. This affected create_graph(), create_vlabel(), create_elabel(),
the CSV loader, and label creation from a CREATE or MERGE clause at query
time, since all of them reach create_label().

The unqualified name arrived with the id column indexes in apache#2117, so this
is a regression. Before that commit create_label() built no index and
resolved no name through the search_path. Every other object referenced by
the DDL that create_label() generates is already reached either by OID or
by an ag_catalog qualified name, so qualifying this one restores the
previous behaviour.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

create_graph() fails when ag_catalog is not in search_path: operator class "graphid_ops" does not exist

1 participant