Package org.hibernate.community.dialect
Class HSQLLegacyDialect
java.lang.Object
org.hibernate.dialect.Dialect
org.hibernate.community.dialect.HSQLLegacyDialect
- All Implemented Interfaces:
org.hibernate.boot.model.FunctionContributor,org.hibernate.boot.model.TypeContributor,org.hibernate.exception.spi.ConversionContext
public class HSQLLegacyDialect
extends org.hibernate.dialect.Dialect
A SQL dialect for HSQLDB (HyperSQL) 1.8 up to (but not including) 2.6.1.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.hibernate.dialect.Dialect
org.hibernate.dialect.Dialect.SizeStrategy, org.hibernate.dialect.Dialect.SizeStrategyImpl -
Field Summary
Fields inherited from class org.hibernate.dialect.Dialect
CLOSED_QUOTE, LEGACY_LOB_MERGE_STRATEGY, LOG_BASE2OF10, NEW_LOCATOR_LOB_MERGE_STRATEGY, QUOTE, STANDARD_MULTI_KEY_LOAD_SIZING_STRATEGY, STREAM_XFER_LOB_MERGE_STRATEGY -
Constructor Summary
ConstructorsConstructorDescriptionHSQLLegacyDialect(org.hibernate.dialect.DatabaseVersion version) HSQLLegacyDialect(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info) -
Method Summary
Modifier and TypeMethodDescriptionvoidappendBooleanValueString(org.hibernate.sql.ast.spi.SqlAppender appender, boolean bool) voidappendDatetimeFormat(org.hibernate.sql.ast.spi.SqlAppender appender, String format) org.hibernate.engine.jdbc.env.spi.IdentifierHelperbuildIdentifierHelper(org.hibernate.engine.jdbc.env.spi.IdentifierHelperBuilder builder, DatabaseMetaData dbMetaData) org.hibernate.exception.spi.SQLExceptionConversionDelegatecastPattern(org.hibernate.query.sqm.CastType from, org.hibernate.query.sqm.CastType to) protected StringcolumnType(int sqlTypeCode) booleanbooleanbooleanbooleanintorg.hibernate.dialect.DmlTargetColumnQualifierSupportorg.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategygetFallbackSqmInsertStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext) org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategygetFallbackSqmMutationStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext) org.hibernate.dialect.FunctionalDependencyAnalysisSupportorg.hibernate.dialect.identity.IdentityColumnSupportorg.hibernate.dialect.pagination.LimitHandlerorg.hibernate.dialect.lock.LockingStrategygetLockingStrategy(org.hibernate.persister.entity.EntityPersister lockable, org.hibernate.LockMode lockMode) For HSQLDB 2.0, this is a copy of the base class implementation.org.hibernate.engine.jdbc.env.spi.NameQualifierSupportorg.hibernate.dialect.NullOrderinggetSelectClauseNullString(int sqlType, org.hibernate.type.spi.TypeConfiguration typeConfiguration) org.hibernate.tool.schema.extract.spi.SequenceInformationExtractororg.hibernate.dialect.sequence.SequenceSupportorg.hibernate.sql.ast.SqlAstTranslatorFactoryorg.hibernate.dialect.temptable.TemporaryTableKindorg.hibernate.query.sqm.mutation.internal.temptable.AfterUseActionorg.hibernate.query.sqm.mutation.internal.temptable.BeforeUseActionorg.hibernate.dialect.unique.UniqueDelegateorg.hibernate.exception.spi.ViolatedConstraintNameExtractorvoidinitializeFunctionRegistry(org.hibernate.boot.model.FunctionContributions functionContributions) booleanprotected voidbooleanprotected IntegerresolveSqlTypeCode(String typeName, String baseTypeName, org.hibernate.type.spi.TypeConfiguration typeConfiguration) booleanbooleanbooleanHSQLDB 1.8.x requires CALL CURRENT_TIMESTAMP but this should not be treated as a callable statement.booleanbooleanbooleanbooleanbooleanbooleanbooleansupportsNamedParameters(DatabaseMetaData databaseMetaData) booleanbooleanbooleanbooleantimestampaddPattern(org.hibernate.query.sqm.TemporalUnit unit, TemporalType temporalType, org.hibernate.query.sqm.IntervalType intervalType) timestampdiffPattern(org.hibernate.query.sqm.TemporalUnit unit, TemporalType fromTemporalType, TemporalType toTemporalType) translateExtractField(org.hibernate.query.sqm.TemporalUnit unit) Methods inherited from class org.hibernate.dialect.Dialect
addSqlHintOrComment, appendArrayLiteral, appendBinaryLiteral, appendCheckConstraintOptions, appendDateTimeLiteral, appendDateTimeLiteral, appendDateTimeLiteral, appendIntervalLiteral, appendLiteral, appendLockHint, appendUUIDLiteral, applyLocksToSql, augmentPhysicalTableTypes, augmentRecognizedTableTypes, canBatchTruncate, canCreateCatalog, canCreateSchema, canDisableConstraints, castType, checkVersion, closeQuote, contribute, contributeFunctions, contributeTypes, createOptionalTableUpdateOperation, currentDate, currentLocalTime, currentLocalTimestamp, defaultScrollMode, equivalentTypes, escapeComment, extractPattern, forceLobAsLastValue, generatedAs, getAddColumnString, getAddColumnSuffixString, getAddForeignKeyConstraintString, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getAggregateSupport, getAlterColumnTypeString, getAlterTableString, getArrayTypeName, getAuxiliaryDatabaseObjectExporter, getBatchLoadSizingStrategy, getCallableStatementSupport, getCaseInsensitiveLike, getCheckCondition, getCheckCondition, getCheckCondition, getCheckCondition, getCheckCondition, getCheckCondition, getCheckConstraintString, getColumnAliasExtractor, getColumnComment, getCreateCatalogCommand, getCreateEnumTypeCommand, getCreateEnumTypeCommand, getCreateIndexString, getCreateIndexTail, getCreateMultisetTableString, getCreateSchemaCommand, getCreateTableString, getCreateTemporaryTableColumnAnnotation, getCreateUserDefinedTypeExtensionsString, getCreateUserDefinedTypeKindString, getCrossReferenceParentTableFilter, getCurrentSchemaCommand, getDefaultDecimalPrecision, getDefaultIntervalSecondScale, getDefaultLobLength, getDefaultNonContextualLobCreation, getDefaultProperties, getDefaultTimestampPrecision, getDefaultUseGetGeneratedKeys, getDisableConstraintsStatement, getDisableConstraintStatement, getDoublePrecision, getDropCatalogCommand, getDropEnumTypeCommand, getDropEnumTypeCommand, getDropForeignKeyString, getDropSchemaCommand, getDropTableString, getDropUniqueKeyString, getEnableConstraintsStatement, getEnableConstraintStatement, getEnumTypeDeclaration, getEnumTypeDeclaration, getFallbackSchemaManagementTool, getFloatPrecision, getForeignKeyExporter, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateSkipLockedString, getForUpdateSkipLockedString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getFractionalSecondPrecisionInNanos, getGroupBySelectItemReferenceStrategy, getHqlTranslator, getIndexExporter, getInExpressionCountLimit, getKeywords, getLobMergeStrategy, getLockRowIdentifier, getLowercaseFunction, getMaxAliasLength, getMaxIdentifierLength, getMaxNVarcharCapacity, getMaxNVarcharLength, getMaxVarbinaryCapacity, getMaxVarbinaryLength, getMaxVarcharCapacity, getMaxVarcharLength, getMinimumSupportedVersion, getMultiKeyLoadSizingStrategy, getNationalizationSupport, getNativeIdentifierGeneratorStrategy, getNativeParameterMarkerStrategy, getNoColumnsInsertString, getNullColumnString, getNullColumnString, getParameterCountLimit, getPreferredSqlTypeCodeForArray, getPreferredSqlTypeCodeForBoolean, getQueryHintString, getQueryHintString, getReadLockString, getReadLockString, getReadRowLockStrategy, getResultSet, getResultSet, getResultSet, getRowIdColumnString, getSchemaNameResolver, getSelectGUIDString, getSequenceExporter, getSizeStrategy, getSqmTranslatorFactory, getTableCleaner, getTableComment, getTableExporter, getTableMigrator, getTableTypeString, getTemporaryTableCreateOptions, getTemporaryTableDdlTransactionHandling, getTemporaryTableDropCommand, getTemporaryTableExporter, getTemporaryTableTruncateCommand, getTimeoutInSeconds, getTimeZoneSupport, getTruncateTableStatement, getTruncateTableStatements, getUniqueKeyExporter, getUserDefinedTypeComment, getUserDefinedTypeExporter, getVersion, getWriteLockString, getWriteLockString, getWriteRowLockStrategy, hasAlterTable, hasDataTypeBeforeGeneratedAs, hasSelfReferentialForeignKeyBug, initDefaultProperties, isAnsiNullOn, isEmptyStringTreatedAsNull, isJdbcLogWarningsEnabledByDefault, isLob, openQuote, ordinal, prependComment, qualifyIndexName, quote, quoteCollation, registerColumnTypes, registerKeyword, registerKeywords, registerResultSetOutParameter, registerResultSetOutParameter, requiresCastForConcatenatingNonStrings, requiresParensForTupleCounts, requiresParensForTupleDistinctCounts, resolveSqlTypeCode, resolveSqlTypeDescriptor, resolveSqlTypeLength, rowId, rowIdSqlType, supportsAlterColumnType, supportsBatchUpdates, supportsBindAsCallableArgument, supportsBitType, supportsCascadeDelete, supportsCaseInsensitiveLike, supportsCircularCascadeDeleteConstraints, supportsConflictClauseForInsertCTE, supportsExistsInSelect, supportsExpectedLobUsagePattern, supportsFetchClause, supportsFractionalTimestampArithmetic, supportsFromClauseInUpdate, supportsIfExistsAfterAlterTable, supportsIfExistsAfterConstraintName, supportsIfExistsAfterTypeName, supportsIfExistsBeforeConstraintName, supportsIfExistsBeforeTypeName, supportsInsertReturning, supportsInsertReturningGeneratedKeys, supportsInsertReturningRowId, supportsIsTrue, supportsJdbcConnectionLobCreation, supportsMaterializedLobAccess, supportsNoColumnsInsert, supportsNonQueryWithCTE, supportsNoWait, supportsNullPrecedence, supportsOrderByInSubquery, supportsOrdinalSelectItemReference, supportsOuterJoinForUpdate, supportsPartitionBy, supportsPredicateAsExpression, supportsRecursiveCTE, supportsRefCursors, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsSkipLocked, supportsStandardCurrentTimestampFunction, supportsSubqueryInSelect, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTableOptions, supportsTemporalLiteralOffset, supportsTemporaryTablePrimaryKey, supportsTemporaryTables, supportsTruncateWithCast, supportsUnboundedLobLocatorMaterialization, supportsUnionAll, supportsUnionInSubquery, supportsUpdateReturning, supportsValuesList, supportsValuesListForInsert, supportsWait, supportsWindowFunctions, toBooleanValueString, toQuotedIdentifier, toString, transformSelectString, translateDurationField, trimPattern, unquoteGetGeneratedKeys, useArrayForMultiValuedParameters, useConnectionToCreateLob, useCrossReferenceForeignKeys, useFollowOnLocking, useInputStreamToInsertBlob, useMaterializedLobWhenCapacityExceeded
-
Constructor Details
-
HSQLLegacyDialect
public HSQLLegacyDialect(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info) -
HSQLLegacyDialect
public HSQLLegacyDialect() -
HSQLLegacyDialect
public HSQLLegacyDialect(org.hibernate.dialect.DatabaseVersion version)
-
-
Method Details
-
registerDefaultKeywords
protected void registerDefaultKeywords()- Overrides:
registerDefaultKeywordsin classorg.hibernate.dialect.Dialect
-
columnType
- Overrides:
columnTypein classorg.hibernate.dialect.Dialect
-
resolveSqlTypeCode
protected Integer resolveSqlTypeCode(String typeName, String baseTypeName, org.hibernate.type.spi.TypeConfiguration typeConfiguration) - Overrides:
resolveSqlTypeCodein classorg.hibernate.dialect.Dialect
-
getDefaultStatementBatchSize
public int getDefaultStatementBatchSize()- Overrides:
getDefaultStatementBatchSizein classorg.hibernate.dialect.Dialect
-
initializeFunctionRegistry
public void initializeFunctionRegistry(org.hibernate.boot.model.FunctionContributions functionContributions) - Overrides:
initializeFunctionRegistryin classorg.hibernate.dialect.Dialect
-
currentTime
- Overrides:
currentTimein classorg.hibernate.dialect.Dialect
-
currentTimestamp
- Overrides:
currentTimestampin classorg.hibernate.dialect.Dialect
-
currentTimestampWithTimeZone
- Overrides:
currentTimestampWithTimeZonein classorg.hibernate.dialect.Dialect
-
getSqlAstTranslatorFactory
public org.hibernate.sql.ast.SqlAstTranslatorFactory getSqlAstTranslatorFactory()- Overrides:
getSqlAstTranslatorFactoryin classorg.hibernate.dialect.Dialect
-
castPattern
public String castPattern(org.hibernate.query.sqm.CastType from, org.hibernate.query.sqm.CastType to) - Overrides:
castPatternin classorg.hibernate.dialect.Dialect
-
timestampaddPattern
public String timestampaddPattern(org.hibernate.query.sqm.TemporalUnit unit, TemporalType temporalType, org.hibernate.query.sqm.IntervalType intervalType) - Overrides:
timestampaddPatternin classorg.hibernate.dialect.Dialect
-
timestampdiffPattern
public String timestampdiffPattern(org.hibernate.query.sqm.TemporalUnit unit, TemporalType fromTemporalType, TemporalType toTemporalType) - Overrides:
timestampdiffPatternin classorg.hibernate.dialect.Dialect
-
supportsDistinctFromPredicate
public boolean supportsDistinctFromPredicate()- Overrides:
supportsDistinctFromPredicatein classorg.hibernate.dialect.Dialect
-
supportsLockTimeouts
public boolean supportsLockTimeouts()- Overrides:
supportsLockTimeoutsin classorg.hibernate.dialect.Dialect
-
getForUpdateString
- Overrides:
getForUpdateStringin classorg.hibernate.dialect.Dialect
-
getLimitHandler
public org.hibernate.dialect.pagination.LimitHandler getLimitHandler()- Overrides:
getLimitHandlerin classorg.hibernate.dialect.Dialect
-
supportsIfExistsAfterTableName
public boolean supportsIfExistsAfterTableName()- Overrides:
supportsIfExistsAfterTableNamein classorg.hibernate.dialect.Dialect
-
supportsIfExistsBeforeTableName
public boolean supportsIfExistsBeforeTableName()- Overrides:
supportsIfExistsBeforeTableNamein classorg.hibernate.dialect.Dialect
-
supportsColumnCheck
public boolean supportsColumnCheck()- Overrides:
supportsColumnCheckin classorg.hibernate.dialect.Dialect
-
getSequenceSupport
public org.hibernate.dialect.sequence.SequenceSupport getSequenceSupport()- Overrides:
getSequenceSupportin classorg.hibernate.dialect.Dialect
-
getQuerySequencesString
- Overrides:
getQuerySequencesStringin classorg.hibernate.dialect.Dialect
-
getSequenceInformationExtractor
public org.hibernate.tool.schema.extract.spi.SequenceInformationExtractor getSequenceInformationExtractor()- Overrides:
getSequenceInformationExtractorin classorg.hibernate.dialect.Dialect
-
supportsStandardArrays
public boolean supportsStandardArrays()- Overrides:
supportsStandardArraysin classorg.hibernate.dialect.Dialect
-
getViolatedConstraintNameExtractor
public org.hibernate.exception.spi.ViolatedConstraintNameExtractor getViolatedConstraintNameExtractor()- Specified by:
getViolatedConstraintNameExtractorin interfaceorg.hibernate.exception.spi.ConversionContext- Overrides:
getViolatedConstraintNameExtractorin classorg.hibernate.dialect.Dialect
-
buildSQLExceptionConversionDelegate
public org.hibernate.exception.spi.SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate()- Overrides:
buildSQLExceptionConversionDelegatein classorg.hibernate.dialect.Dialect
-
getSelectClauseNullString
public String getSelectClauseNullString(int sqlType, org.hibernate.type.spi.TypeConfiguration typeConfiguration) - Overrides:
getSelectClauseNullStringin classorg.hibernate.dialect.Dialect
-
getNullOrdering
public org.hibernate.dialect.NullOrdering getNullOrdering()- Overrides:
getNullOrderingin classorg.hibernate.dialect.Dialect
-
getFallbackSqmMutationStrategy
public org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy getFallbackSqmMutationStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext) - Overrides:
getFallbackSqmMutationStrategyin classorg.hibernate.dialect.Dialect
-
getFallbackSqmInsertStrategy
public org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy getFallbackSqmInsertStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext) - Overrides:
getFallbackSqmInsertStrategyin classorg.hibernate.dialect.Dialect
-
getSupportedTemporaryTableKind
public org.hibernate.dialect.temptable.TemporaryTableKind getSupportedTemporaryTableKind()- Overrides:
getSupportedTemporaryTableKindin classorg.hibernate.dialect.Dialect
-
getTemporaryTableCreateCommand
- Overrides:
getTemporaryTableCreateCommandin classorg.hibernate.dialect.Dialect
-
getTemporaryTableAfterUseAction
public org.hibernate.query.sqm.mutation.internal.temptable.AfterUseAction getTemporaryTableAfterUseAction()- Overrides:
getTemporaryTableAfterUseActionin classorg.hibernate.dialect.Dialect
-
getTemporaryTableBeforeUseAction
public org.hibernate.query.sqm.mutation.internal.temptable.BeforeUseAction getTemporaryTableBeforeUseAction()- Overrides:
getTemporaryTableBeforeUseActionin classorg.hibernate.dialect.Dialect
-
supportsCurrentTimestampSelection
public boolean supportsCurrentTimestampSelection()HSQLDB 1.8.x requires CALL CURRENT_TIMESTAMP but this should not be treated as a callable statement. It is equivalent to "select current_timestamp from dual" in some databases. HSQLDB 2.0 also supports VALUES CURRENT_TIMESTAMP- Overrides:
supportsCurrentTimestampSelectionin classorg.hibernate.dialect.Dialect
-
isCurrentTimestampSelectStringCallable
public boolean isCurrentTimestampSelectStringCallable()- Overrides:
isCurrentTimestampSelectStringCallablein classorg.hibernate.dialect.Dialect
-
getCurrentTimestampSelectString
- Overrides:
getCurrentTimestampSelectStringin classorg.hibernate.dialect.Dialect
-
doesRoundTemporalOnOverflow
public boolean doesRoundTemporalOnOverflow()- Overrides:
doesRoundTemporalOnOverflowin classorg.hibernate.dialect.Dialect
-
getLockingStrategy
public org.hibernate.dialect.lock.LockingStrategy getLockingStrategy(org.hibernate.persister.entity.EntityPersister lockable, org.hibernate.LockMode lockMode) For HSQLDB 2.0, this is a copy of the base class implementation. For HSQLDB 1.8, only READ_UNCOMMITTED is supported.- Overrides:
getLockingStrategyin classorg.hibernate.dialect.Dialect
-
supportsCommentOn
public boolean supportsCommentOn()- Overrides:
supportsCommentOnin classorg.hibernate.dialect.Dialect
-
doesReadCommittedCauseWritersToBlockReaders
public boolean doesReadCommittedCauseWritersToBlockReaders()- Overrides:
doesReadCommittedCauseWritersToBlockReadersin classorg.hibernate.dialect.Dialect
-
doesRepeatableReadCauseReadersToBlockWriters
public boolean doesRepeatableReadCauseReadersToBlockWriters()- Overrides:
doesRepeatableReadCauseReadersToBlockWritersin classorg.hibernate.dialect.Dialect
-
supportsLobValueChangePropagation
public boolean supportsLobValueChangePropagation()- Overrides:
supportsLobValueChangePropagationin classorg.hibernate.dialect.Dialect
-
appendBooleanValueString
public void appendBooleanValueString(org.hibernate.sql.ast.spi.SqlAppender appender, boolean bool) - Overrides:
appendBooleanValueStringin classorg.hibernate.dialect.Dialect
-
supportsTupleCounts
public boolean supportsTupleCounts()- Overrides:
supportsTupleCountsin classorg.hibernate.dialect.Dialect
-
supportsTupleDistinctCounts
public boolean supportsTupleDistinctCounts()- Overrides:
supportsTupleDistinctCountsin classorg.hibernate.dialect.Dialect
-
supportsOffsetInSubquery
public boolean supportsOffsetInSubquery()- Overrides:
supportsOffsetInSubqueryin classorg.hibernate.dialect.Dialect
-
supportsLateral
public boolean supportsLateral()- Overrides:
supportsLateralin classorg.hibernate.dialect.Dialect
-
requiresFloatCastingOfIntegerDivision
public boolean requiresFloatCastingOfIntegerDivision()- Overrides:
requiresFloatCastingOfIntegerDivisionin classorg.hibernate.dialect.Dialect
-
getIdentityColumnSupport
public org.hibernate.dialect.identity.IdentityColumnSupport getIdentityColumnSupport()- Overrides:
getIdentityColumnSupportin classorg.hibernate.dialect.Dialect
-
getNameQualifierSupport
public org.hibernate.engine.jdbc.env.spi.NameQualifierSupport getNameQualifierSupport()- Overrides:
getNameQualifierSupportin classorg.hibernate.dialect.Dialect
-
supportsNamedParameters
- Overrides:
supportsNamedParametersin classorg.hibernate.dialect.Dialect
-
getFunctionalDependencyAnalysisSupport
public org.hibernate.dialect.FunctionalDependencyAnalysisSupport getFunctionalDependencyAnalysisSupport()- Overrides:
getFunctionalDependencyAnalysisSupportin classorg.hibernate.dialect.Dialect
-
dropConstraints
public boolean dropConstraints()- Overrides:
dropConstraintsin classorg.hibernate.dialect.Dialect
-
getCascadeConstraintsString
- Overrides:
getCascadeConstraintsStringin classorg.hibernate.dialect.Dialect
-
appendDatetimeFormat
- Overrides:
appendDatetimeFormatin classorg.hibernate.dialect.Dialect
-
translateExtractField
- Overrides:
translateExtractFieldin classorg.hibernate.dialect.Dialect
-
buildIdentifierHelper
public org.hibernate.engine.jdbc.env.spi.IdentifierHelper buildIdentifierHelper(org.hibernate.engine.jdbc.env.spi.IdentifierHelperBuilder builder, DatabaseMetaData dbMetaData) throws SQLException - Overrides:
buildIdentifierHelperin classorg.hibernate.dialect.Dialect- Throws:
SQLException
-
getUniqueDelegate
public org.hibernate.dialect.unique.UniqueDelegate getUniqueDelegate()- Overrides:
getUniqueDelegatein classorg.hibernate.dialect.Dialect
-
getDmlTargetColumnQualifierSupport
public org.hibernate.dialect.DmlTargetColumnQualifierSupport getDmlTargetColumnQualifierSupport()- Overrides:
getDmlTargetColumnQualifierSupportin classorg.hibernate.dialect.Dialect
-