@@ -279,15 +279,13 @@ func TestUpdate(t *testing.T) {
279
279
` ,
280
280
nil ,
281
281
},
282
- /*
283
- {
284
- `
285
- DROP FUNCTION IF EXISTS bar(text);
286
- DROP FUNCTION IF EXISTS bar(text) CASCADE;
287
- `,
288
- pg.NewCatalog(),
289
- },
290
- */
282
+ {
283
+ `
284
+ DROP FUNCTION IF EXISTS bar;
285
+ DROP FUNCTION IF EXISTS bar();
286
+ ` ,
287
+ nil ,
288
+ },
291
289
{
292
290
`
293
291
CREATE TABLE venues (id SERIAL PRIMARY KEY);
@@ -309,160 +307,154 @@ func TestUpdate(t *testing.T) {
309
307
},
310
308
},
311
309
},
312
- /*
313
- { // first argument has no name
314
- `
315
- CREATE FUNCTION foo(TEXT) RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
316
- `,
317
- pg.Catalog{
318
- Schemas: map[string]pg.Schema{
319
- "public": {
320
- Funcs: map[string][]pg.Function{
321
- "foo": []pg.Function{
322
- {
323
- Name: "foo",
324
- Arguments: []pg.Argument{
325
- {
326
- Name: "",
327
- DataType: "text",
328
- },
329
- },
330
- ReturnType: "bool",
331
- },
332
- },
310
+ {
311
+ `
312
+ CREATE FUNCTION foo(TEXT) RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
313
+ ` ,
314
+ & catalog.Schema {
315
+ Name : "public" ,
316
+ Funcs : []* catalog.Function {
317
+ {
318
+ Name : "foo" ,
319
+ Args : []* catalog.Argument {
320
+ {
321
+ Type : & ast.TypeName {Name : "text" },
333
322
},
334
323
},
324
+ ReturnType : & ast.TypeName {Name : "bool" },
335
325
},
336
326
},
337
327
},
338
- { // same name, different arity
339
- `
340
- CREATE FUNCTION foo(bar TEXT) RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
341
- CREATE FUNCTION foo(bar TEXT, baz TEXT) RETURNS TEXT AS $$ SELECT "baz" $$ LANGUAGE sql;
342
- `,
343
- pg.Catalog{
344
- Schemas: map[string]pg.Schema{
345
- "public": {
346
- Funcs: map[string][]pg.Function{
347
- "foo": []pg.Function{
348
- {
349
- Name: "foo",
350
- Arguments: []pg.Argument{
351
- {
352
- Name: "bar",
353
- DataType: "text",
354
- },
355
- },
356
- ReturnType: "bool",
357
- },
358
- {
359
- Name: "foo",
360
- Arguments: []pg.Argument{
361
- {
362
- Name: "bar",
363
- DataType: "text",
364
- },
365
- {
366
- Name: "baz",
367
- DataType: "text",
368
- },
369
- },
370
- ReturnType: "text",
371
- },
372
- },
328
+ },
329
+ {
330
+ `
331
+ CREATE FUNCTION foo(bar TEXT) RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
332
+ CREATE FUNCTION foo(bar TEXT, baz TEXT) RETURNS TEXT AS $$ SELECT "baz" $$ LANGUAGE sql;
333
+ ` ,
334
+ & catalog.Schema {
335
+ Name : "public" ,
336
+ Funcs : []* catalog.Function {
337
+ {
338
+ Name : "foo" ,
339
+ Args : []* catalog.Argument {
340
+ {
341
+ Name : "bar" ,
342
+ Type : & ast.TypeName {Name : "text" },
373
343
},
374
344
},
345
+ ReturnType : & ast.TypeName {Name : "bool" },
346
+ },
347
+ {
348
+ Name : "foo" ,
349
+ Args : []* catalog.Argument {
350
+ {
351
+ Name : "bar" ,
352
+ Type : & ast.TypeName {Name : "text" },
353
+ },
354
+ {
355
+ Name : "baz" ,
356
+ Type : & ast.TypeName {Name : "text" },
357
+ },
358
+ },
359
+ ReturnType : & ast.TypeName {Name : "text" },
375
360
},
376
361
},
377
362
},
378
- { // same name and arity, different arg types
379
- `
380
- CREATE FUNCTION foo(bar TEXT) RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
381
- CREATE FUNCTION foo(bar INTEGER) RETURNS TEXT AS $$ SELECT "baz" $$ LANGUAGE sql;
382
- `,
383
- pg.Catalog{
384
- Schemas: map[string]pg.Schema{
385
- "public": {
386
- Funcs: map[string][]pg.Function{
387
- "foo": []pg.Function{
388
- {
389
- Name: "foo",
390
- Arguments: []pg.Argument{
391
- {
392
- Name: "bar",
393
- DataType: "text",
394
- },
395
- },
396
- ReturnType: "bool",
397
- },
398
- {
399
- Name: "foo",
400
- Arguments: []pg.Argument{
401
- {
402
- Name: "bar",
403
- DataType: "pg_catalog.int4",
404
- },
405
- },
406
- ReturnType: "text",
407
- },
408
- },
363
+ },
364
+ {
365
+ `
366
+ CREATE FUNCTION foo(bar TEXT) RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
367
+ CREATE FUNCTION foo(bar INTEGER) RETURNS TEXT AS $$ SELECT "baz" $$ LANGUAGE sql;
368
+ ` ,
369
+ & catalog.Schema {
370
+ Name : "public" ,
371
+ Funcs : []* catalog.Function {
372
+ {
373
+ Name : "foo" ,
374
+ Args : []* catalog.Argument {
375
+ {
376
+ Name : "bar" ,
377
+ Type : & ast.TypeName {Name : "text" },
378
+ },
379
+ },
380
+ ReturnType : & ast.TypeName {Name : "bool" },
381
+ },
382
+ {
383
+ Name : "foo" ,
384
+ Args : []* catalog.Argument {
385
+ {
386
+ Name : "bar" ,
387
+ Type : & ast.TypeName {Schema : "pg_catalog" , Name : "int4" },
409
388
},
410
389
},
390
+ ReturnType : & ast.TypeName {Name : "text" },
411
391
},
412
392
},
413
393
},
414
- {
415
- `
416
- CREATE FUNCTION foo(bar TEXT, baz TEXT="baz") RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
417
- `,
418
- pg.Catalog{
419
- Schemas: map[string]pg.Schema{
420
- "public": {
421
- Funcs: map[string][]pg.Function{
422
- "foo": []pg.Function{
423
- {
424
- Name: "foo",
425
- Arguments: []pg.Argument{
426
- {
427
- Name: "bar",
428
- DataType: "text",
429
- },
430
- {
431
- Name: "baz",
432
- DataType: "text",
433
- HasDefault: true,
434
- },
435
- },
436
- ReturnType: "bool",
437
- },
438
- },
394
+ },
395
+ {
396
+ `
397
+ CREATE FUNCTION foo(bar TEXT, baz TEXT="baz") RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
398
+ ` ,
399
+ & catalog.Schema {
400
+ Name : "public" ,
401
+ Funcs : []* catalog.Function {
402
+ {
403
+ Name : "foo" ,
404
+ Args : []* catalog.Argument {
405
+ {
406
+ Name : "bar" ,
407
+ Type : & ast.TypeName {Name : "text" },
408
+ },
409
+ {
410
+ Name : "baz" ,
411
+ Type : & ast.TypeName {Name : "text" },
412
+ HasDefault : true ,
439
413
},
440
414
},
415
+ ReturnType : & ast.TypeName {Name : "bool" },
441
416
},
442
417
},
443
418
},
444
- {
445
- `
446
- CREATE TABLE pg_temp.migrate (val INT);
447
- INSERT INTO pg_temp.migrate (val) SELECT val FROM old;
448
- INSERT INTO new (val) SELECT val FROM pg_temp.migrate;
449
- `,
450
- pg.Catalog{
451
- Schemas: map[string]pg.Schema{
452
- "pg_temp": {
453
- Tables: map[string]pg.Table{
454
- "migrate": pg.Table{
455
- Name: "migrate",
456
- Columns: []pg.Column{
457
- {Name: "val", DataType: "pg_catalog.int4", NotNull: false, Table: pg.FQN{Schema: "pg_temp", Rel: "migrate"}},
458
- },
459
- },
419
+ },
420
+ {
421
+ `
422
+ CREATE FUNCTION foo(bar text) RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
423
+ DROP FUNCTION foo(text);
424
+ ` ,
425
+ nil ,
426
+ },
427
+ {
428
+ `
429
+ CREATE FUNCTION foo(bar text) RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
430
+ DROP FUNCTION foo;
431
+ ` ,
432
+ nil ,
433
+ },
434
+ // CREATE FUNCTION foo(bar text) RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
435
+ // CREATE FUNCTION foo() RETURNS bool AS $$ SELECT true $$ LANGUAGE sql;
436
+ // DROP FUNCTION foo -- FAIL
437
+ {
438
+ `
439
+ CREATE TABLE pg_temp.migrate (val SERIAL);
440
+ INSERT INTO pg_temp.migrate (val) SELECT val FROM old;
441
+ INSERT INTO new (val) SELECT val FROM pg_temp.migrate;
442
+ ` ,
443
+ & catalog.Schema {
444
+ Name : "pg_temp" ,
445
+ Tables : []* catalog.Table {
446
+ {
447
+ Rel : & ast.TableName {Schema : "pg_temp" , Name : "migrate" },
448
+ Columns : []* catalog.Column {
449
+ {
450
+ Name : "val" ,
451
+ Type : ast.TypeName {Name : "serial" },
460
452
},
461
453
},
462
454
},
463
455
},
464
456
},
465
- */
457
+ },
466
458
{
467
459
`
468
460
CREATE SCHEMA foo;
0 commit comments