Package org.apache.calcite.avatica

# Class MetaImpl

java.lang.Object
org.apache.calcite.avatica.MetaImpl

All Implemented Interfaces:
  `Meta`

public abstract class MetaImpl extends Object implements Meta
Basic implementation of `Meta`.

Each sub-class must implement the two remaining abstract methods, `Meta.prepare(org.apache.calcite.avatica.Meta.ConnectionHandle, java.lang.String, long)` and `Meta.prepareAndExecute(org.apache.calcite.avatica.Meta.StatementHandle, java.lang.String, long, org.apache.calcite.avatica.Meta.PrepareCallback)`. It should also override metadata methods such as `getCatalogs(Meta.ConnectionHandle)` and `getTables(org.apache.calcite.avatica.Meta.ConnectionHandle, java.lang.String, org.apache.calcite.avatica.Meta.Pat, org.apache.calcite.avatica.Meta.Pat, java.util.List<java.lang.String>)` for the element types for which it has instances; the default metadata methods return empty collections.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static @interface`
`MetaImpl.ColumnNoNulls`
Annotation that indicates that a meta field may not contain null values.
`static @interface`
`MetaImpl.ColumnNullable`
Annotation that indicates that a meta field may contain null values.
`static @interface`
`MetaImpl.ColumnNullableUnknown`
Annotation that indicates that it is unknown whether a meta field may contain null values.
`static class`
`MetaImpl.MetaAttribute`
Metadata describing an attribute.
`static class`
`MetaImpl.MetaBestRowIdentifier`
Metadata describing the best identifier for a row.
`static class`
`MetaImpl.MetaCatalog`
Metadata describing a catalog.
`static class`
`MetaImpl.MetaClientInfoProperty`
Metadata describing a client info property.
`static class`
`MetaImpl.MetaColumn`
Metadata describing a column.
`static class`
`MetaImpl.MetaColumnPrivilege`
Metadata describing a column privilege.
`static class`
`MetaImpl.MetaCrossReference`
Metadata describing a cross reference.
`static class`
`MetaImpl.MetaExportedKey`
Metadata describing an exported key.
`static class`
`MetaImpl.MetaFunction`
Metadata describing a function.
`static class`
`MetaImpl.MetaFunctionColumn`
Metadata describing a function column.
`static class`
`MetaImpl.MetaImportedKey`
Metadata describing an imported key.
`static class`
`MetaImpl.MetaIndexInfo`
Metadata describing index info.
`static class`
`MetaImpl.MetaPrimaryKey`
Metadata describing a primary key.
`static class`
`MetaImpl.MetaProcedure`
Metadata describing a procedure.
`static class`
`MetaImpl.MetaProcedureColumn`
Metadata describing a procedure column.
`static class`
`MetaImpl.MetaPseudoColumn`
Metadata describing a pseudo column.
`static class`
`MetaImpl.MetaSchema`
Metadata describing a schema.
`static class`
`MetaImpl.MetaSuperTable`
Metadata describing a super-table.
`static class`
`MetaImpl.MetaSuperType`
Metadata describing a super-type.
`static class`
`MetaImpl.MetaTable`
Metadata describing a table.
`static class`
`MetaImpl.MetaTablePrivilege`
Metadata describing a table privilege.
`static class`
`MetaImpl.MetaTableType`
Metadata describing a table type.
`static class`
`MetaImpl.MetaTypeInfo`
Metadata describing type info.
`static class`
`MetaImpl.MetaUdt`
Metadata describing a user-defined type.
`static class`
`MetaImpl.MetaVersionColumn`
Metadata describing a version column.
`static interface`
`MetaImpl.Named`
An object that has a name.

## Nested classes/interfaces inherited from interface org.apache.calcite.avatica.Meta

`Meta.ConnectionHandle, Meta.ConnectionProperties, Meta.CursorFactory, Meta.DatabaseProperty, Meta.ExecuteBatchResult, Meta.ExecuteResult, Meta.Factory, Meta.Frame, Meta.MetaResultSet, Meta.Pat, Meta.PrepareCallback, Meta.Signature, Meta.StatementHandle, Meta.StatementType, Meta.Style`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final AvaticaConnection`
`connection`
The `AvaticaConnection` backing `this`.
`protected final ConnectionPropertiesImpl`
`connProps`
Represents the various states specific to `connection`.

## Constructor Summary

Constructors
Constructor
Description
`MetaImpl(AvaticaConnection connection)`

## Method Summary

Modifier and Type
Method
Description
`static boolean`
`checkParameterValueHasNull(List<TypedValue> parameterValues)`
Returns whether a list of parameter values has any null elements.
`void`
`closeConnection(Meta.ConnectionHandle ch)`
Closes a connection
`static List<List<Object>>`
`collect(Meta.CursorFactory cursorFactory, Iterable<Object> iterable, List<List<Object>> list)`
`static List<List<Object>>`
`collect(Meta.CursorFactory cursorFactory, Iterator<Object> iterator, List<List<Object>> list)`
`static ColumnMetaData`
`columnMetaData(String name, int index, Class<?> type, boolean columnNullable)`
`static ColumnMetaData`
`columnMetaData(String name, int index, Class<?> type, int columnNullable)`
`static ColumnMetaData`
`columnMetaData(String name, int index, ColumnMetaData.AvaticaType type, boolean columnNullable)`
`static ColumnMetaData`
`columnMetaData(String name, int index, ColumnMetaData.AvaticaType type, int columnNullable)`
`Meta.ConnectionProperties`
`connectionSync(Meta.ConnectionHandle ch, Meta.ConnectionProperties connProps)`
Synchronizes client and server view of connection properties.
`static Cursor`
`createCursor(Meta.CursorFactory cursorFactory, Iterable<Object> iterable)`
Uses a `Meta.CursorFactory` to convert an `Iterable` into a `Cursor`.
`protected <E> Meta.MetaResultSet`
`createEmptyResultSet(Class<E> clazz)`
Creates an empty result set.
`Iterable<Object>`
`createIterable(Meta.StatementHandle handle, QueryState state, Meta.Signature signature, List<TypedValue> parameterValues, Meta.Frame firstFrame)`
Creates an iterable for a result set.
`protected Meta.MetaResultSet`
`createResultSet(Map<String,Object> internalParameters, List<ColumnMetaData> columns, Meta.CursorFactory cursorFactory, Meta.Frame firstFrame)`
`Meta.StatementHandle`
`createStatement(Meta.ConnectionHandle ch)`
Called during the creation of a statement to allocate a new handle.
`Meta.Frame`
`fetch(AvaticaStatement stmt, List<TypedValue> parameterValues, long offset, int fetchMaxRowCount)`
`protected static ColumnMetaData.StructType`
`fieldMetaData(Class<?> clazz)`
`Meta.MetaResultSet`
`getAttributes(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat typeNamePattern, Meta.Pat attributeNamePattern)`
Per `DatabaseMetaData.getAttributes(String, String, String, String)`.
`Meta.MetaResultSet`
`getBestRowIdentifier(Meta.ConnectionHandle ch, String catalog, String schema, String table, int scope, boolean nullable)`
Per `DatabaseMetaData.getBestRowIdentifier(String, String, String, int, boolean)`.
`Meta.MetaResultSet`
`getCatalogs(Meta.ConnectionHandle ch)`
Per `DatabaseMetaData.getCatalogs()`.
`Meta.MetaResultSet`
`getClientInfoProperties(Meta.ConnectionHandle ch)`
Per `DatabaseMetaData.getClientInfoProperties()`.
`protected static int`
`getColumnNullability(Field field)`
`Meta.MetaResultSet`
`getColumnPrivileges(Meta.ConnectionHandle ch, String catalog, String schema, String table, Meta.Pat columnNamePattern)`
Per `DatabaseMetaData.getColumnPrivileges(String, String, String, String)`.
`Meta.MetaResultSet`
`getColumns(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat tableNamePattern, Meta.Pat columnNamePattern)`
Per `DatabaseMetaData.getColumns(String, String, String, String)`.
`Meta.MetaResultSet`
`getCrossReference(Meta.ConnectionHandle ch, String parentCatalog, String parentSchema, String parentTable, String foreignCatalog, String foreignSchema, String foreignTable)`
Per `DatabaseMetaData.getCrossReference(String, String, String, String, String, String)`.
`Map<Meta.DatabaseProperty,Object>`
`getDatabaseProperties(Meta.ConnectionHandle ch)`
Returns a map of static database properties.
`Meta.MetaResultSet`
`getExportedKeys(Meta.ConnectionHandle ch, String catalog, String schema, String table)`
Per `DatabaseMetaData.getExportedKeys(String, String, String)`.
`Meta.MetaResultSet`
`getFunctionColumns(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat functionNamePattern, Meta.Pat columnNamePattern)`
Per `DatabaseMetaData.getFunctionColumns(String, String, String, String)`.
`Meta.MetaResultSet`
`getFunctions(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat functionNamePattern)`
Per `DatabaseMetaData.getFunctions(String, String, String)`.
`Meta.MetaResultSet`
`getImportedKeys(Meta.ConnectionHandle ch, String catalog, String schema, String table)`
Per `DatabaseMetaData.getImportedKeys(String, String, String)`.
`Meta.MetaResultSet`
`getIndexInfo(Meta.ConnectionHandle ch, String catalog, String schema, String table, boolean unique, boolean approximate)`
Per `DatabaseMetaData.getIndexInfo(String, String, String, boolean, boolean)`.
`Meta.MetaResultSet`
`getPrimaryKeys(Meta.ConnectionHandle ch, String catalog, String schema, String table)`
Per `DatabaseMetaData.getPrimaryKeys(String, String, String)`.
`Meta.MetaResultSet`
`getProcedureColumns(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat procedureNamePattern, Meta.Pat columnNamePattern)`
Per `DatabaseMetaData.getProcedureColumns(String, String, String, String)`.
`Meta.MetaResultSet`
`getProcedures(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat procedureNamePattern)`
Per `DatabaseMetaData.getProcedures(String, String, String)`.
`Meta.MetaResultSet`
`getPseudoColumns(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat tableNamePattern, Meta.Pat columnNamePattern)`
Per `DatabaseMetaData.getPseudoColumns(String, String, String, String)`.
`Meta.MetaResultSet`
`getSchemas(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern)`
`Meta.MetaResultSet`
`getSuperTables(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat tableNamePattern)`
Per `DatabaseMetaData.getSuperTables(String, String, String)`.
`Meta.MetaResultSet`
`getSuperTypes(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat typeNamePattern)`
Per `DatabaseMetaData.getSuperTypes(String, String, String)`.
`Meta.MetaResultSet`
`getTablePrivileges(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat tableNamePattern)`
Per `DatabaseMetaData.getTablePrivileges(String, String, String)`.
`Meta.MetaResultSet`
`getTables(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat tableNamePattern, List<String> typeList)`
Per `DatabaseMetaData.getTables(String, String, String, String[])`.
`Meta.MetaResultSet`
`getTableTypes(Meta.ConnectionHandle ch)`
Per `DatabaseMetaData.getTableTypes()`.
`Meta.MetaResultSet`
`getTypeInfo(Meta.ConnectionHandle ch)`
Per `DatabaseMetaData.getTypeInfo()`.
`Meta.MetaResultSet`
`getUDTs(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat typeNamePattern, int[] types)`
Per `DatabaseMetaData.getUDTs(String, String, String, int[])`.
`Meta.MetaResultSet`
`getVersionColumns(Meta.ConnectionHandle ch, String catalog, String schema, String table)`
Per `DatabaseMetaData.getVersionColumns(String, String, String)`.
`void`
`openConnection(Meta.ConnectionHandle ch, Map<String,String> info)`
Opens (creates) a connection.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.calcite.avatica.Meta

`closeStatement, commit, execute, execute, executeBatch, fetch, prepare, prepareAndExecute, prepareAndExecute, prepareAndExecuteBatch, rollback, syncResults`

## Field Details

### connection

protected final AvaticaConnection connection
The `AvaticaConnection` backing `this`.

### connProps

protected final ConnectionPropertiesImpl connProps
Represents the various states specific to `connection`.

Note: this instance is used recursively with `connection`'s getter and setter methods.

## Constructor Details

### MetaImpl

public MetaImpl(AvaticaConnection connection)

## Method Details

### createCursor

public static Cursor createCursor(Meta.CursorFactory cursorFactory, Iterable<Object> iterable)
Uses a `Meta.CursorFactory` to convert an `Iterable` into a `Cursor`.

### collect

public static List<List<Object>> collect(Meta.CursorFactory cursorFactory, Iterator<Object> iterator, List<List<Object>> list)

### collect

public static List<List<Object>> collect(Meta.CursorFactory cursorFactory, Iterable<Object> iterable, List<List<Object>> list)

### openConnection

public void openConnection(Meta.ConnectionHandle ch, Map<String,String> info)
Description copied from interface: `Meta`
Opens (creates) a connection. The client allocates its own connection ID which the server is then made aware of through the `Meta.ConnectionHandle`. The Map `info` argument is analogous to the `Properties` typically passed to a "normal" JDBC Driver. Avatica specific properties should not be included -- only properties for the underlying driver.

Specified by:
  `openConnection` in interface `Meta`
Parameters:
  `ch` - A ConnectionHandle encapsulates information about the connection to be opened as provided by the client.
  `info` - A Map corresponding to the Properties typically passed to a JDBC Driver.

### closeConnection

public void closeConnection(Meta.ConnectionHandle ch)
Description copied from interface: `Meta`
Closes a connection

Specified by:
  `closeConnection` in interface `Meta`

### connectionSync

public Meta.ConnectionProperties connectionSync(Meta.ConnectionHandle ch, Meta.ConnectionProperties connProps)
Description copied from interface: `Meta`
Synchronizes client and server view of connection properties.

Note: this interface is considered "experimental" and may undergo further changes as this functionality is extended to other aspects of state management for `Connection`, `Statement`, and `ResultSet`.

Specified by:
  `connectionSync` in interface `Meta`

### createStatement

public Meta.StatementHandle createStatement(Meta.ConnectionHandle ch)
Description copied from interface: `Meta`
Called during the creation of a statement to allocate a new handle.

Specified by:
  `createStatement` in interface `Meta`
Parameters:
  `ch` - Connection handle

### createEmptyResultSet

protected <E> Meta.MetaResultSet createEmptyResultSet(Class<E> clazz)
Creates an empty result set. Useful for JDBC metadata methods that are not implemented or which query entities that are not supported (e.g. triggers in Lingual).

### columnMetaData

public static ColumnMetaData columnMetaData(String name, int index, Class<?> type, boolean columnNullable)

### columnMetaData

public static ColumnMetaData columnMetaData(String name, int index, ColumnMetaData.AvaticaType type, boolean columnNullable)

### columnMetaData

public static ColumnMetaData columnMetaData(String name, int index, Class<?> type, int columnNullable)

### columnMetaData

public static ColumnMetaData columnMetaData(String name, int index, ColumnMetaData.AvaticaType type, int columnNullable)

### fieldMetaData

protected static ColumnMetaData.StructType fieldMetaData(Class<?> clazz)

### getColumnNullability

protected static int getColumnNullability(Field field)

### createResultSet

protected Meta.MetaResultSet createResultSet(Map<String,Object> internalParameters, List<ColumnMetaData> columns, Meta.CursorFactory cursorFactory, Meta.Frame firstFrame)

### getDatabaseProperties

public Map<Meta.DatabaseProperty,Object> getDatabaseProperties(Meta.ConnectionHandle ch)
Description copied from interface: `Meta`
Returns a map of static database properties.

The provider can omit properties whose value is the same as the default.

Specified by:
  `getDatabaseProperties` in interface `Meta`

### getTables

public Meta.MetaResultSet getTables(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat tableNamePattern, List<String> typeList)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getTables(String, String, String, String[])`.

Specified by:
  `getTables` in interface `Meta`

### getColumns

public Meta.MetaResultSet getColumns(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat tableNamePattern, Meta.Pat columnNamePattern)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getColumns(String, String, String, String)`.

Specified by:
  `getColumns` in interface `Meta`

### getSchemas

public Meta.MetaResultSet getSchemas(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern)

Specified by:
  `getSchemas` in interface `Meta`

### getCatalogs

public Meta.MetaResultSet getCatalogs(Meta.ConnectionHandle ch)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getCatalogs()`.

Specified by:
  `getCatalogs` in interface `Meta`

### getTableTypes

public Meta.MetaResultSet getTableTypes(Meta.ConnectionHandle ch)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getTableTypes()`.

Specified by:
  `getTableTypes` in interface `Meta`

### getProcedures

public Meta.MetaResultSet getProcedures(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat procedureNamePattern)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getProcedures(String, String, String)`.

Specified by:
  `getProcedures` in interface `Meta`

### getProcedureColumns

public Meta.MetaResultSet getProcedureColumns(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat procedureNamePattern, Meta.Pat columnNamePattern)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getProcedureColumns(String, String, String, String)`.

Specified by:
  `getProcedureColumns` in interface `Meta`

### getColumnPrivileges

public Meta.MetaResultSet getColumnPrivileges(Meta.ConnectionHandle ch, String catalog, String schema, String table, Meta.Pat columnNamePattern)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getColumnPrivileges(String, String, String, String)`.

Specified by:
  `getColumnPrivileges` in interface `Meta`

### getTablePrivileges

public Meta.MetaResultSet getTablePrivileges(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat tableNamePattern)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getTablePrivileges(String, String, String)`.

Specified by:
  `getTablePrivileges` in interface `Meta`

### getBestRowIdentifier

public Meta.MetaResultSet getBestRowIdentifier(Meta.ConnectionHandle ch, String catalog, String schema, String table, int scope, boolean nullable)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getBestRowIdentifier(String, String, String, int, boolean)`.

Specified by:
  `getBestRowIdentifier` in interface `Meta`

### getVersionColumns

public Meta.MetaResultSet getVersionColumns(Meta.ConnectionHandle ch, String catalog, String schema, String table)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getVersionColumns(String, String, String)`.

Specified by:
  `getVersionColumns` in interface `Meta`

### getPrimaryKeys

public Meta.MetaResultSet getPrimaryKeys(Meta.ConnectionHandle ch, String catalog, String schema, String table)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getPrimaryKeys(String, String, String)`.

Specified by:
  `getPrimaryKeys` in interface `Meta`

### getImportedKeys

public Meta.MetaResultSet getImportedKeys(Meta.ConnectionHandle ch, String catalog, String schema, String table)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getImportedKeys(String, String, String)`.

Specified by:
  `getImportedKeys` in interface `Meta`

### getExportedKeys

public Meta.MetaResultSet getExportedKeys(Meta.ConnectionHandle ch, String catalog, String schema, String table)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getExportedKeys(String, String, String)`.

Specified by:
  `getExportedKeys` in interface `Meta`

### getCrossReference

public Meta.MetaResultSet getCrossReference(Meta.ConnectionHandle ch, String parentCatalog, String parentSchema, String parentTable, String foreignCatalog, String foreignSchema, String foreignTable)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getCrossReference(String, String, String, String, String, String)`.

Specified by:
  `getCrossReference` in interface `Meta`

### getTypeInfo

public Meta.MetaResultSet getTypeInfo(Meta.ConnectionHandle ch)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getTypeInfo()`.

Specified by:
  `getTypeInfo` in interface `Meta`

### getIndexInfo

public Meta.MetaResultSet getIndexInfo(Meta.ConnectionHandle ch, String catalog, String schema, String table, boolean unique, boolean approximate)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getIndexInfo(String, String, String, boolean, boolean)`.

Specified by:
  `getIndexInfo` in interface `Meta`

### getUDTs

public Meta.MetaResultSet getUDTs(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat typeNamePattern, int[] types)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getUDTs(String, String, String, int[])`.

Specified by:
  `getUDTs` in interface `Meta`

### getSuperTypes

public Meta.MetaResultSet getSuperTypes(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat typeNamePattern)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getSuperTypes(String, String, String)`.

Specified by:
  `getSuperTypes` in interface `Meta`

### getSuperTables

public Meta.MetaResultSet getSuperTables(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat tableNamePattern)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getSuperTables(String, String, String)`.

Specified by:
  `getSuperTables` in interface `Meta`

### getAttributes

public Meta.MetaResultSet getAttributes(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat typeNamePattern, Meta.Pat attributeNamePattern)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getAttributes(String, String, String, String)`.

Specified by:
  `getAttributes` in interface `Meta`

### getClientInfoProperties

public Meta.MetaResultSet getClientInfoProperties(Meta.ConnectionHandle ch)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getClientInfoProperties()`.

Specified by:
  `getClientInfoProperties` in interface `Meta`

### getFunctions

public Meta.MetaResultSet getFunctions(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat functionNamePattern)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getFunctions(String, String, String)`.

Specified by:
  `getFunctions` in interface `Meta`

### getFunctionColumns

public Meta.MetaResultSet getFunctionColumns(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat functionNamePattern, Meta.Pat columnNamePattern)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getFunctionColumns(String, String, String, String)`.

Specified by:
  `getFunctionColumns` in interface `Meta`

### getPseudoColumns

public Meta.MetaResultSet getPseudoColumns(Meta.ConnectionHandle ch, String catalog, Meta.Pat schemaPattern, Meta.Pat tableNamePattern, Meta.Pat columnNamePattern)
Description copied from interface: `Meta`
Per `DatabaseMetaData.getPseudoColumns(String, String, String, String)`.

Specified by:
  `getPseudoColumns` in interface `Meta`

### createIterable

public Iterable<Object> createIterable(Meta.StatementHandle handle, QueryState state, Meta.Signature signature, List<TypedValue> parameterValues, Meta.Frame firstFrame)
Description copied from interface: `Meta`
Creates an iterable for a result set.

The default implementation just returns `iterable`, which it requires to be not null; derived classes may instead choose to execute the relational expression in `signature`.

Specified by:
  `createIterable` in interface `Meta`

### fetch

public Meta.Frame fetch(AvaticaStatement stmt, List<TypedValue> parameterValues, long offset, int fetchMaxRowCount) throws NoSuchStatementException, MissingResultsException

Throws:
  `NoSuchStatementException`
  `MissingResultsException`

### checkParameterValueHasNull

public static boolean checkParameterValueHasNull(List<TypedValue> parameterValues)
Returns whether a list of parameter values has any null elements.