Skip to content

Commit e1465e1

Browse files
committed
Build deno [autogenerated commit]
1 parent 012a8fc commit e1465e1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+222
-150
lines changed

.deno/column.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { _Column, IValue, _IIndex, NotSupported, _Transaction, QueryError, _IType, SchemaField, ChangeHandler, nil, ISubscription, DropHandler } from './interfaces-private.ts';
22
import type { MemoryTable } from './table.ts';
33
import { Evaluator } from './evaluator.ts';
4-
import { ColumnConstraint, AlterColumn } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
4+
import { ColumnConstraint, AlterColumn } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
55
import { nullIsh } from './utils.ts';
66
import { columnEvaluator } from './transforms/selection.ts';
77
import { BIndex } from './schema/btree-index.ts';

.deno/constraints/foreign-key.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ISubscription, NotSupported, QueryError } from '../interfaces.ts';
2-
import { Expr, ExprBinary, TableConstraintForeignKey } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
2+
import { Expr, ExprBinary, TableConstraintForeignKey } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
33
import { asTable, CreateIndexColDef, _IConstraint, _ITable, _Transaction } from '../interfaces-private.ts';
44
import { nullIsh } from '../utils.ts';
55

.deno/constraints/generated.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ISubscription, NotSupported, QueryError } from '../interfaces.ts';
2-
import { AlterColumnAddGenerated, Expr, ExprBinary, nil, TableConstraintForeignKey } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
2+
import { AlterColumnAddGenerated, Expr, ExprBinary, nil, TableConstraintForeignKey } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
33
import { asTable, CreateIndexColDef, _Column, _IConstraint, _ITable, _Transaction } from '../interfaces-private.ts';
44
import { nullIsh } from '../utils.ts';
55

.deno/datatypes/datatype-base.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ export abstract class TypeBase<TRaw = any> implements _IType<TRaw>, _RelationBas
146146
}
147147

148148
// asks this type if it knows how to convert itself to target
149-
if (this.doCanCast?.(to)) {
149+
if (this.doCanConvertImplicit?.(to) || this.doCanCast?.(to)) {
150150
return true;
151151
}
152152

@@ -157,7 +157,7 @@ export abstract class TypeBase<TRaw = any> implements _IType<TRaw>, _RelationBas
157157
cast(_a: IValue<TRaw>, _to: _IType<any>): IValue<any> {
158158
return this._convert(_a, _to, (a, to) => {
159159
if (!this.doCanCast?.(to) || !this.doCast) {
160-
throw new CastError(this.primary, to.primary);
160+
throw new CastError(this, to);
161161
}
162162
return this.doCast(a, to);
163163
})
@@ -167,7 +167,7 @@ export abstract class TypeBase<TRaw = any> implements _IType<TRaw>, _RelationBas
167167
convertImplicit(_a: IValue<TRaw>, _to: _IType<any>): IValue<any> {
168168
return this._convert(_a, _to, (a, to) => {
169169
if (!this.doCanConvertImplicit?.(to) || !this.doCast) {
170-
throw new CastError(this.primary, to.primary);
170+
throw new CastError(this, to);
171171
}
172172
return this.doCast(a, to);
173173
})
@@ -179,21 +179,21 @@ export abstract class TypeBase<TRaw = any> implements _IType<TRaw>, _RelationBas
179179
return a;
180180
}
181181
if (!(a instanceof Evaluator)) {
182-
throw new CastError(this.primary, to.primary);
182+
throw new CastError(this, to);
183183
}
184184

185185
let converted: Evaluator | nil;
186186
if (to.doCanBuildFrom?.(this)) {
187187
if (!to.doBuildFrom) {
188-
throw new CastError(this.primary, to.primary);
188+
throw new CastError(this, to);
189189
}
190190
converted = to.doBuildFrom(a, this);
191191
} else {
192192
converted = perform(a, to);
193193
}
194194

195195
if (!converted) {
196-
throw new CastError(this.primary, to.primary);
196+
throw new CastError(this, to);
197197
}
198198
return converted.setType(to);
199199
}

.deno/datatypes/datatypes-geometric.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { DataType, QueryError } from '../interfaces.ts';
22
import { _IType } from '../interfaces-private.ts';
3-
import { Box, Circle, Line, Path, Point, Polygon, Segment } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
3+
import { Box, Circle, Line, Path, Point, Polygon, Segment } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
44
import { Evaluator } from '../evaluator.ts';
55
import { TypeBase } from './datatype-base.ts';
66

.deno/datatypes/datatypes.ts

+10-9
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { IValue, _IIndex, _ISelection, _IType, _ISchema } from '../interfaces-pr
22
import { DataType, CastError, IType, QueryError, nil } from '../interfaces.ts';
33
import { nullIsh } from '../utils.ts';
44
import { Evaluator, Value } from '../evaluator.ts';
5-
import { parseArrayLiteral } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
6-
import { parseGeometricLiteral } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
5+
import { parseArrayLiteral } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
6+
import { parseGeometricLiteral } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
77
import { bufCompare, bufFromString, bufToString, TBuffer } from '../misc/buffer-deno.ts';
88
import { TypeBase } from './datatype-base.ts';
99
import { BoxType, CircleType, LineType, LsegType, PathType, PointType, PolygonType } from './datatypes-geometric.ts';
@@ -589,7 +589,8 @@ export const Types = {
589589
[DataType.uuid]: new UUIDtype() as _IType,
590590
[DataType.date]: new TimestampType(DataType.date) as _IType,
591591
[DataType.interval]: new IntervalType() as _IType,
592-
[DataType.time]: new TimeType() as _IType,
592+
[DataType.time]: new TimeType(DataType.time) as _IType,
593+
[DataType.timetz]: new TimeType(DataType.timetz) as _IType,
593594
[DataType.jsonb]: new JSONBType(DataType.jsonb) as _IType,
594595
[DataType.regtype]: new RegTypeImpl() as _IType,
595596
[DataType.regclass]: new RegClassImpl() as _IType,
@@ -646,12 +647,13 @@ function makeText(len: number | nil = null) {
646647
return got;
647648
}
648649

649-
const timestamps = new Map<number | null, _IType>();
650+
const timestamps = new Map<string, _IType>();
650651
function makeTimestamp(primary: DataType, len: number | nil = null) {
651652
len = len ?? null;
652-
let got = timestamps.get(len);
653+
const key = primary + '/' + len;
654+
let got = timestamps.get(key);
653655
if (!got) {
654-
timestamps.set(len, got = new TimestampType(primary, len));
656+
timestamps.set(key, got = new TimestampType(primary, len));
655657
}
656658
return got;
657659
}
@@ -684,13 +686,12 @@ export const typeSynonyms: { [key: string]: DataType } = {
684686
'real': DataType.float,
685687
'money': DataType.float,
686688

687-
'timestamptz': DataType.timestamp, // => todo support timestamptz
688-
'timestamp with time zone': DataType.timestamp, // => todo support timestamptz
689+
'timestamp with time zone': DataType.timestamptz,
689690
'timestamp without time zone': DataType.timestamp,
690691

691692
'boolean': DataType.bool,
692693

693-
'time with time zone': DataType.time,
694+
'time with time zone': DataType.timetz,
694695
'time without time zone': DataType.time,
695696
}
696697

.deno/datatypes/t-interval.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { DataType, nil, _IType } from '../interfaces-private.ts';
2-
import { Interval, normalizeInterval, parseIntervalLiteral } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
2+
import { Interval, normalizeInterval, parseIntervalLiteral } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
33
import { TypeBase } from './datatype-base.ts';
44
import { Evaluator } from '../evaluator.ts';
55
import { intervalToSec } from '../utils.ts';

.deno/datatypes/t-time.ts

+27-5
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,53 @@
1-
import { DataType, nil, QueryError, _IType } from '../interfaces-private.ts';
1+
import { DataType, nil, _IType } from '../interfaces-private.ts';
22
import { TypeBase } from './datatype-base.ts';
33
import { Evaluator } from '../evaluator.ts';
4-
import { Types } from './datatypes.ts';
54
import { parseTime } from '../utils.ts';
65

76

87
export class TimeType extends TypeBase<string> {
98

109

11-
get primary(): DataType {
12-
return DataType.time;
10+
constructor(readonly primary: DataType.time | DataType.timetz) {
11+
super();
12+
}
13+
14+
15+
get name(): string {
16+
return this.primary === DataType.timetz
17+
? 'time with time zone'
18+
: 'time without time zone';
1319
}
1420

1521

1622
doCanCast(to: _IType) {
1723
switch (to.primary) {
1824
case DataType.text:
25+
case DataType.timetz:
26+
case DataType.time:
1927
return true;
2028
}
2129
return null;
2230
}
2331

32+
33+
doCanConvertImplicit(to: _IType) {
34+
switch (to.primary) {
35+
case DataType.timetz:
36+
return true;
37+
case DataType.time:
38+
return this.primary === DataType.time;
39+
}
40+
return false;
41+
}
42+
43+
2444
doCast(value: Evaluator, to: _IType) {
2545
switch (to.primary) {
2646
case DataType.text:
47+
case DataType.time:
48+
case DataType.timetz:
2749
return value
28-
.setType(Types.text())
50+
.setType(to);
2951
}
3052
throw new Error('Unexpected cast error');
3153
}

.deno/datatypes/t-timestamp.ts

+48-5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { DataType, nil, QueryError, _IType } from '../interfaces-private.ts';
22
import { TypeBase } from './datatype-base.ts';
33
import { Evaluator } from '../evaluator.ts';
44
import moment from 'https://deno.land/x/[email protected]/mod.ts';
5+
import { parseTime, nullIsh } from '../utils.ts';
56

67
export class TimestampType extends TypeBase<Date> {
78

@@ -11,31 +12,64 @@ export class TimestampType extends TypeBase<Date> {
1112
}
1213

1314
get name(): string {
14-
if (!this.precision) {
15-
return this.primary;
15+
if (!nullIsh(this.precision)) {
16+
return `${this.primary}(${this.precision})`;
1617
}
17-
return `${this.primary}(${this.precision})`;
18+
switch (this.primary) {
19+
case DataType.timestamp:
20+
return 'timestamp without time zone';
21+
case DataType.timestamptz:
22+
return 'timestamp with time zone';
23+
case DataType.date:
24+
return 'date';
25+
case DataType.time:
26+
return 'time without time zone';
27+
case DataType.timetz:
28+
return 'time with time zone';
29+
}
30+
return this.primary;
1831
}
1932

2033
doCanCast(to: _IType) {
2134
switch (to.primary) {
2235
case DataType.timestamp:
36+
case DataType.timestamptz:
2337
case DataType.date:
38+
return this.primary !== DataType.time && this.primary !== DataType.timetz;
2439
case DataType.time:
25-
return true;
40+
return this.primary !== DataType.date;
41+
case DataType.timetz:
42+
return this.primary !== DataType.date && this.primary !== DataType.timestamp;
2643
}
2744
return null;
2845
}
2946

47+
doCanConvertImplicit(to: _IType) {
48+
switch (to.primary) {
49+
case DataType.timestamp:
50+
return this.primary === DataType.timestamp
51+
|| this.primary === DataType.date;
52+
case DataType.timestamptz:
53+
return this.primary !== DataType.time;
54+
case DataType.date:
55+
return this.primary === DataType.date;
56+
case DataType.time:
57+
return this.primary === DataType.time; // nothing can implicitly cast to time
58+
}
59+
return false;
60+
}
61+
3062
doCast(value: Evaluator, to: _IType) {
3163
switch (to.primary) {
3264
case DataType.timestamp:
65+
case DataType.timestamptz:
3366
return value;
3467
case DataType.date:
3568
return value
3669
.setConversion(raw => moment.utc(raw).startOf('day').toDate()
3770
, toDate => ({ toDate }));
3871
case DataType.time:
72+
case DataType.timetz:
3973
return value
4074
.setConversion(raw => moment.utc(raw).format('HH:mm:ss') + '.000000'
4175
, toDate => ({ toDate }));
@@ -57,6 +91,7 @@ export class TimestampType extends TypeBase<Date> {
5791
case DataType.text:
5892
switch (this.primary) {
5993
case DataType.timestamp:
94+
case DataType.timestamptz:
6095
return value
6196
.setConversion(str => {
6297
const conv = moment.utc(str);
@@ -65,7 +100,7 @@ export class TimestampType extends TypeBase<Date> {
65100
}
66101
return conv.toDate()
67102
}
68-
, toTs => ({ toTs }));
103+
, toTs => ({ toTs, t: this.primary }));
69104
case DataType.date:
70105
return value
71106
.setConversion(str => {
@@ -76,6 +111,14 @@ export class TimestampType extends TypeBase<Date> {
76111
return conv.startOf('day').toDate();
77112
}
78113
, toDate => ({ toDate }));
114+
case DataType.time:
115+
case DataType.timetz:
116+
return value
117+
.setConversion(str => {
118+
parseTime(str); // will throw an error if invalid format
119+
return str;
120+
}
121+
, toTime => ({ toTime, t: this.primary }));
79122
}
80123
}
81124
return null;

.deno/db.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { buildDistinct } from './transforms/distinct.ts';
1414
import { buildOrderBy } from './transforms/order-by.ts';
1515
import { setupPgCatalog } from './schema/pg-catalog/index.ts';
1616
import { setupInformationSchema } from './schema/information-schema/index.ts';
17-
import { QName, BinaryOperator } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
17+
import { QName, BinaryOperator } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
1818
import { asSingleQName } from './utils.ts';
1919

2020
export function newDb(opts?: MemoryDbOptions): IMemoryDb {

.deno/evaluator.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import hash from 'https://deno.land/x/[email protected]/mod.ts';
44
import { Types, ArrayType, isNumeric } from './datatypes/index.ts';
55
import { buildCall } from './parser/function-call.ts';
66
import { nullIsh, executionCtx } from './utils.ts';
7-
import { QName } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
7+
import { QName } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
88
import { buildCtx } from './parser/context.ts';
99

1010

.deno/execution/exec-utils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { QName, Statement, NodeLocation, toSql } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
1+
import { QName, Statement, NodeLocation, toSql } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
22
import { _ISchema, QueryError, _Transaction, _IDb } from '../interfaces-private.ts';
33

44
export function checkExistence(schema: _ISchema, name: QName, ifNotExists: boolean | undefined, act: () => void): boolean {

.deno/execution/records-mutations/deletion.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { _ITable, _Transaction, IValue, _Explainer, _ISchema, asTable, _ISelection, _IIndex, _IStatement } from '../../interfaces-private.ts';
2-
import { DeleteStatement } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
2+
import { DeleteStatement } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
33
import { MutationDataSourceBase } from './mutation-base.ts';
44
import { buildCtx } from '../../parser/context.ts';
55

.deno/execution/records-mutations/insert.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { _ITable, _Transaction, IValue, _Explainer, nil, _ISchema, asTable, _ISelection, _IIndex, QueryError, OnConflictHandler, ChangeOpts, _IStatement } from '../../interfaces-private.ts';
2-
import { InsertStatement } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
2+
import { InsertStatement } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
33
import { buildValue } from '../../parser/expression-builder.ts';
44
import { Types } from '../../datatypes/index.ts';
55
import { JoinSelection } from '../../transforms/join.ts';

.deno/execution/records-mutations/mutation-base.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { DataSourceBase } from '../../transforms/transform-base.ts';
22
import { ArrayFilter } from '../../transforms/array-filter.ts';
33
import { cleanResults } from '../clean-results.ts';
44
import { _ISelection, _ISchema, _ITable, _Transaction, IValue, _IIndex, _Explainer, _IStatement } from '../../interfaces-private.ts';
5-
import { InsertStatement, UpdateStatement, DeleteStatement, SetStatement, ExprRef } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
5+
import { InsertStatement, UpdateStatement, DeleteStatement, SetStatement, ExprRef } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
66
import { buildSelection } from '../../transforms/selection.ts';
77
import { MemoryTable } from '../../table.ts';
88
import { buildValue } from '../../parser/expression-builder.ts';

.deno/execution/records-mutations/truncate-table.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { _ISchema, _Transaction, SchemaField, NotSupported, _ITable, _IStatementExecutor, asTable, StatementResult, _IStatement } from '../../interfaces-private.ts';
2-
import { TruncateTableStatement } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
2+
import { TruncateTableStatement } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
33
import { ExecHelper } from '../exec-utils.ts';
44
import { buildCtx } from '../../parser/context.ts';
55

.deno/execution/records-mutations/update.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { _ITable, _Transaction, _Explainer, _ISchema, asTable, _ISelection, _IIndex, _IStatement } from '../../interfaces-private.ts';
2-
import { UpdateStatement } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
2+
import { UpdateStatement } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
33
import { MutationDataSourceBase, Setter, createSetter } from './mutation-base.ts';
44
import { buildCtx } from '../../parser/context.ts';
55

.deno/execution/schema-amends/alter-sequence.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { _ISchema, _Transaction, _ISequence, _IStatementExecutor, _IStatement, asSeq } from '../../interfaces-private.ts';
2-
import { AlterSequenceStatement } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
2+
import { AlterSequenceStatement } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
33
import { ExecHelper } from '../exec-utils.ts';
44
import { ignore } from '../../utils.ts';
55

.deno/execution/schema-amends/alter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { _ISchema, _Transaction, SchemaField, NotSupported, _ITable, _IStatementExecutor, asTable, QueryError, _IStatement } from '../../interfaces-private.ts';
2-
import { AlterTableStatement } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
2+
import { AlterTableStatement } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
33
import { ignore } from '../../utils.ts';
44
import { ExecHelper } from '../exec-utils.ts';
55

.deno/execution/schema-amends/create-enum.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { _Transaction, _ISchema, NotSupported, CreateIndexColDef, _ITable, CreateIndexDef, _IStatement, _IStatementExecutor } from '../../interfaces-private.ts';
2-
import { CreateEnumType } from 'https://deno.land/x/pgsql_ast_parser@10.1.0/mod.ts';
2+
import { CreateEnumType } from 'https://deno.land/x/pgsql_ast_parser@10.3.1/mod.ts';
33
import { ExecHelper } from '../exec-utils.ts';
44

55
export class CreateEnum extends ExecHelper implements _IStatementExecutor {

0 commit comments

Comments
 (0)