Skip to main content

Suggestion

Enum Suggestion 

Source
#[repr(u32)]
pub enum Suggestion { Variable = 0, CatalogName = 1, SchemaName = 2, TableName = 3, ColumnName = 4, ScalarFunctionName = 5, TableFunctionName = 6, TypeName = 7, PragmaName = 8, SettingName = 9, FileName = 10, }
Expand description

What an identifier matcher was built to suggest.

Kept rather than reduced to the two answers it implies, because upstream derives both from it and keeping the derivation in one place is how the two stay comparable. identifier_matcher.hpp is the source.

Variants§

§

Variable = 0

§

CatalogName = 1

§

SchemaName = 2

§

TableName = 3

§

ColumnName = 4

§

ScalarFunctionName = 5

§

TableFunctionName = 6

§

TypeName = 7

§

PragmaName = 8

§

SettingName = 9

§

FileName = 10

Implementations§

Source§

impl Suggestion

Source

pub const fn allowed_class(self) -> u8

Which keyword class may be used as a bare word here, on top of unreserved.

Type name positions allow the type name class, both function name positions allow the combined type and function class, and everything else allows the column name class. That TypeFuncKeyword <- TypeNameKeyword / FuncNameKeyword is a rule in the grammar and also a category in the matcher is not a coincidence, it is the same union written once. ParsedGrammarKeywordHelper’s constructor holds a table of five rule names against five keyword sets, and the entry for typefunc_keyword_map names that rule, which it then walks through its references to collect the words. So the category is not a sixth list somebody has to keep in step with the other five, it is what that one line of the grammar says.

Source

pub const fn supports_string_literal(self) -> bool

Whether a single quoted string is accepted where this name is expected.

Two positions only. FROM 'file.parquet' is the reason, and SELECT 'x' FROM t staying a string literal rather than becoming a column reference is the reason it is only two.

Trait Implementations§

Source§

impl Clone for Suggestion

Source§

fn clone(&self) -> Suggestion

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Suggestion

Source§

impl Debug for Suggestion

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Suggestion

Source§

impl PartialEq for Suggestion

Source§

fn eq(&self, other: &Suggestion) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Suggestion

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.