Skip to content

Commit

Permalink
fix(operators)!: swap operator types (#1024)
Browse files Browse the repository at this point in the history
  • Loading branch information
Shinigami92 committed Apr 3, 2024
1 parent d253b05 commit 3b97adc
Show file tree
Hide file tree
Showing 4 changed files with 357 additions and 59 deletions.
6 changes: 3 additions & 3 deletions src/operations/operators.ts
Expand Up @@ -142,7 +142,7 @@ const operatorMap =
({ type, number, name, params = [] }: OperatorListDefinition) => {
const nameStr = mOptions.literal(name);

if (String(type).toLowerCase() === 'function') {
if (String(type).toLowerCase() === 'operator') {
if (params.length > 2) {
throw new Error("Operator can't have more than 2 parameters");
}
Expand All @@ -152,7 +152,7 @@ const operatorMap =
return `OPERATOR ${number} ${nameStr}${paramsStr}`;
}

if (String(type).toLowerCase() === 'operator') {
if (String(type).toLowerCase() === 'function') {
const paramsStr = formatParams(params, mOptions);

return `FUNCTION ${number} ${nameStr}${paramsStr}`;
Expand Down Expand Up @@ -267,7 +267,7 @@ export function createOperatorClass(
.map(operatorMap(mOptions))
.join(',\n ');

return `CREATE OPERATOR CLASS ${operatorClassNameStr}${defaultStr} FOR TYPE ${typeStr} USING ${indexMethodStr} ${familyStr} AS
return `CREATE OPERATOR CLASS ${operatorClassNameStr}${defaultStr} FOR TYPE ${typeStr} USING ${indexMethodStr}${familyStr} AS
${operatorListStr};`;
};

Expand Down
78 changes: 39 additions & 39 deletions test/operations/operators/addToOperatorFamily.spec.ts
Expand Up @@ -11,42 +11,42 @@ describe('operations', () => {
expect(addToOperatorFamilyFn).toBeTypeOf('function');
});

it.todo('should return sql statement', () => {
it('should return sql statement', () => {
const statement = addToOperatorFamilyFn('integer_ops', 'btree', [
{
name: '<',
number: 1,
type: 'operator',
number: 1,
name: '<',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '<=',
number: 2,
type: 'operator',
number: 2,
name: '<=',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '=',
number: 3,
type: 'operator',
number: 3,
name: '=',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '>=',
number: 4,
type: 'operator',
number: 4,
name: '>=',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '>',
number: 5,
type: 'operator',
number: 5,
name: '>',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: 'btint42cmp',
number: 1,
type: 'function',
number: 1,
name: 'btint42cmp',
params: [{ type: 'int4' }, { type: 'int2' }],
},
]);
Expand All @@ -63,45 +63,45 @@ describe('operations', () => {
);
});

it.todo('should return sql statement with schema', () => {
it('should return sql statement with schema', () => {
const statement = addToOperatorFamilyFn(
{ name: 'integer_ops', schema: 'myschema' },
'btree',
[
{
name: '<',
number: 1,
type: 'operator',
number: 1,
name: '<',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '<=',
number: 2,
type: 'operator',
number: 2,
name: '<=',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '=',
number: 3,
type: 'operator',
number: 3,
name: '=',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '>=',
number: 4,
type: 'operator',
number: 4,
name: '>=',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '>',
number: 5,
type: 'operator',
number: 5,
name: '>',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: 'btint42cmp',
number: 1,
type: 'function',
number: 1,
name: 'btint42cmp',
params: [{ type: 'int4' }, { type: 'int2' }],
},
]
Expand All @@ -124,45 +124,45 @@ describe('operations', () => {
expect(addToOperatorFamilyFn.reverse).toBeTypeOf('function');
});

it.todo('should return sql statement', () => {
it('should return sql statement', () => {
const statement = addToOperatorFamilyFn.reverse(
'integer_ops',
'btree',
[
{
name: '<',
number: 1,
type: 'operator',
number: 1,
name: '<',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '<=',
number: 2,
type: 'operator',
number: 2,
name: '<=',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '=',
number: 3,
type: 'operator',
number: 3,
name: '=',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '>=',
number: 4,
type: 'operator',
number: 4,
name: '>=',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: '>',
number: 5,
type: 'operator',
number: 5,
name: '>',
params: [{ type: 'int4' }, { type: 'int2' }],
},
{
name: 'btint42cmp',
number: 1,
type: 'function',
number: 1,
name: 'btint42cmp',
params: [{ type: 'int4' }, { type: 'int2' }],
},
]
Expand Down

0 comments on commit 3b97adc

Please sign in to comment.