~ubuntu-branches/ubuntu/natty/postgresql-8.4/natty-security

« back to all changes in this revision

Viewing changes to src/interfaces/ecpg/preproc/preproc.h

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2012-02-27 15:05:31 UTC
  • mfrom: (1.3.5) (22.1.2 natty-proposed)
  • Revision ID: package-import@ubuntu.com-20120227150531-c1nzfkmiakl0h2sj
Tags: 8.4.11-0ubuntu0.11.04
* New upstream bug fix/security release: (LP: #941912)
  - Require execute permission on the trigger function for "CREATE
    TRIGGER".
    This missing check could allow another user to execute a trigger
    function with forged input data, by installing it on a table he
    owns. This is only of significance for trigger functions marked
    SECURITY DEFINER, since otherwise trigger functions run as the
    table owner anyway. (CVE-2012-0866)
  - Remove arbitrary limitation on length of common name in SSL
    certificates.
    Both libpq and the server truncated the common name extracted from
    an SSL certificate at 32 bytes. Normally this would cause nothing
    worse than an unexpected verification failure, but there are some
    rather-implausible scenarios in which it might allow one
    certificate holder to impersonate another. The victim would have to
    have a common name exactly 32 bytes long, and the attacker would
    have to persuade a trusted CA to issue a certificate in which the
    common name has that string as a prefix. Impersonating a server
    would also require some additional exploit to redirect client
    connections. (CVE-2012-0867)
  - Convert newlines to spaces in names written in pg_dump comments.
    pg_dump was incautious about sanitizing object names that are
    emitted within SQL comments in its output script. A name containing
    a newline would at least render the script syntactically incorrect.
    Maliciously crafted object names could present a SQL injection risk
    when the script is reloaded. (CVE-2012-0868)
  - Fix btree index corruption from insertions concurrent with
    vacuuming.
    An index page split caused by an insertion could sometimes cause a
    concurrently-running "VACUUM" to miss removing index entries that
    it should remove. After the corresponding table rows are removed,
    the dangling index entries would cause errors (such as "could not
    read block N in file ...") or worse, silently wrong query results
    after unrelated rows are re-inserted at the now-free table
    locations. This bug has been present since release 8.2, but occurs
    so infrequently that it was not diagnosed until now. If you have
    reason to suspect that it has happened in your database, reindexing
    the affected index will fix things.
  - Update per-column permissions, not only per-table permissions, when
    changing table owner.
    Failure to do this meant that any previously granted column
    permissions were still shown as having been granted by the old
    owner. This meant that neither the new owner nor a superuser could
    revoke the now-untraceable-to-table-owner permissions.
  - Allow non-existent values for some settings in "ALTER USER/DATABASE
    SET".
    Allow default_text_search_config, default_tablespace, and
    temp_tablespaces to be set to names that are not known. This is
    because they might be known in another database where the setting
    is intended to be used, or for the tablespace cases because the
    tablespace might not be created yet. The same issue was previously
    recognized for search_path, and these settings now act like that
    one.
  - Avoid crashing when we have problems deleting table files
    post-commit.
    Dropping a table should lead to deleting the underlying disk files
    only after the transaction commits. In event of failure then (for
    instance, because of wrong file permissions) the code is supposed
    to just emit a warning message and go on, since it's too late to
    abort the transaction. This logic got broken as of release 8.4,
    causing such situations to result in a PANIC and an unrestartable
    database.
  - Track the OID counter correctly during WAL replay, even when it
    wraps around.
    Previously the OID counter would remain stuck at a high value until
    the system exited replay mode. The practical consequences of that
    are usually nil, but there are scenarios wherein a standby server
    that's been promoted to master might take a long time to advance
    the OID counter to a reasonable value once values are needed.
  - Fix regular expression back-references with - attached.
    Rather than enforcing an exact string match, the code would
    effectively accept any string that satisfies the pattern
    sub-expression referenced by the back-reference symbol.
    A similar problem still afflicts back-references that are embedded
    in a larger quantified expression, rather than being the immediate
    subject of the quantifier. This will be addressed in a future
    PostgreSQL release.
  - Fix recently-introduced memory leak in processing of inet/cidr
    values.
  - Fix dangling pointer after "CREATE TABLE AS"/"SELECT INTO" in a
    SQL-language function.
    In most cases this only led to an assertion failure in
    assert-enabled builds, but worse consequences seem possible.
  - Fix I/O-conversion-related memory leaks in plpgsql.
  - Improve pg_dump's handling of inherited table columns.
    pg_dump mishandled situations where a child column has a different
    default expression than its parent column. If the default is
    textually identical to the parent's default, but not actually the
    same (for instance, because of schema search path differences) it
    would not be recognized as different, so that after dump and
    restore the child would be allowed to inherit the parent's default.
    Child columns that are NOT NULL where their parent is not could
    also be restored subtly incorrectly.
  - Fix pg_restore's direct-to-database mode for INSERT-style table
    data.
    Direct-to-database restores from archive files made with
    "--inserts" or "--column-inserts" options fail when using
    pg_restore from a release dated September or December 2011, as a
    result of an oversight in a fix for another problem. The archive
    file itself is not at fault, and text-mode output is okay.
  - Allow AT option in ecpg DEALLOCATE statements.
    The infrastructure to support this has been there for awhile, but
    through an oversight there was still an error check rejecting the
    case.
  - Fix error in "contrib/intarray"'s int[] & int[] operator.
    If the smallest integer the two input arrays have in common is 1,
    and there are smaller values in either array, then 1 would be
    incorrectly omitted from the result.
  - Fix error detection in "contrib/pgcrypto"'s encrypt_iv() and
    decrypt_iv().
    These functions failed to report certain types of invalid-input
    errors, and would instead return random garbage values for
    incorrect input.
  - Fix one-byte buffer overrun in "contrib/test_parser".
    The code would try to read one more byte than it should, which
    would crash in corner cases. Since "contrib/test_parser" is only
    example code, this is not a security issue in itself, but bad
    example code is still bad.
  - Use __sync_lock_test_and_set() for spinlocks on ARM, if available.
    This function replaces our previous use of the SWPB instruction,
    which is deprecated and not available on ARMv6 and later. Reports
    suggest that the old code doesn't fail in an obvious way on recent
    ARM boards, but simply doesn't interlock concurrent accesses,
    leading to bizarre failures in multiprocess operation.
  - Use "-fexcess-precision=standard" option when building with gcc
    versions that accept it.
    This prevents assorted scenarios wherein recent versions of gcc
    will produce creative results.
  - Allow use of threaded Python on FreeBSD.
    Our configure script previously believed that this combination
    wouldn't work; but FreeBSD fixed the problem, so remove that error
    check.
* Drop 00git_inet_cidr_unpack.patch, 04-armel-tas.patch, applied upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* A Bison parser, made by GNU Bison 1.875.  */
2
 
 
3
 
/* Skeleton parser for Yacc-like parsing with Bison,
4
 
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
5
 
 
6
 
   This program is free software; you can redistribute it and/or modify
 
1
 
 
2
/* A Bison parser, made by GNU Bison 2.4.1.  */
 
3
 
 
4
/* Skeleton interface for Bison's Yacc-like parsers in C
 
5
   
 
6
      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 
7
   Free Software Foundation, Inc.
 
8
   
 
9
   This program is free software: you can redistribute it and/or modify
7
10
   it under the terms of the GNU General Public License as published by
8
 
   the Free Software Foundation; either version 2, or (at your option)
9
 
   any later version.
10
 
 
 
11
   the Free Software Foundation, either version 3 of the License, or
 
12
   (at your option) any later version.
 
13
   
11
14
   This program is distributed in the hope that it will be useful,
12
15
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
16
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
17
   GNU General Public License for more details.
15
 
 
 
18
   
16
19
   You should have received a copy of the GNU General Public License
17
 
   along with this program; if not, write to the Free Software
18
 
   Foundation, Inc., 59 Temple Place - Suite 330,
19
 
   Boston, MA 02111-1307, USA.  */
20
 
 
21
 
/* As a special exception, when this file is copied by Bison into a
22
 
   Bison output file, you may use that output file without restriction.
23
 
   This special exception was added by the Free Software Foundation
24
 
   in version 1.24 of Bison.  */
 
20
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
21
 
 
22
/* As a special exception, you may create a larger work that contains
 
23
   part or all of the Bison parser skeleton and distribute that work
 
24
   under terms of your choice, so long as that work isn't itself a
 
25
   parser generator using the skeleton or a modified version thereof
 
26
   as a parser skeleton.  Alternatively, if you modify or redistribute
 
27
   the parser skeleton itself, you may (at your option) remove this
 
28
   special exception, which will cause the skeleton and the resulting
 
29
   Bison output files to be licensed under the GNU General Public
 
30
   License without this special exception.
 
31
   
 
32
   This special exception was added by the Free Software Foundation in
 
33
   version 2.2 of Bison.  */
 
34
 
25
35
 
26
36
/* Tokens.  */
27
37
#ifndef YYTOKENTYPE
514
524
     UMINUS = 740
515
525
   };
516
526
#endif
517
 
#define SQL_ALLOCATE 258
518
 
#define SQL_AUTOCOMMIT 259
519
 
#define SQL_BOOL 260
520
 
#define SQL_BREAK 261
521
 
#define SQL_CALL 262
522
 
#define SQL_CARDINALITY 263
523
 
#define SQL_CONNECT 264
524
 
#define SQL_COUNT 265
525
 
#define SQL_DATETIME_INTERVAL_CODE 266
526
 
#define SQL_DATETIME_INTERVAL_PRECISION 267
527
 
#define SQL_DESCRIBE 268
528
 
#define SQL_DESCRIPTOR 269
529
 
#define SQL_DISCONNECT 270
530
 
#define SQL_FOUND 271
531
 
#define SQL_FREE 272
532
 
#define SQL_GET 273
533
 
#define SQL_GO 274
534
 
#define SQL_GOTO 275
535
 
#define SQL_IDENTIFIED 276
536
 
#define SQL_INDICATOR 277
537
 
#define SQL_KEY_MEMBER 278
538
 
#define SQL_LENGTH 279
539
 
#define SQL_LONG 280
540
 
#define SQL_NULLABLE 281
541
 
#define SQL_OCTET_LENGTH 282
542
 
#define SQL_OPEN 283
543
 
#define SQL_OUTPUT 284
544
 
#define SQL_REFERENCE 285
545
 
#define SQL_RETURNED_LENGTH 286
546
 
#define SQL_RETURNED_OCTET_LENGTH 287
547
 
#define SQL_SCALE 288
548
 
#define SQL_SECTION 289
549
 
#define SQL_SHORT 290
550
 
#define SQL_SIGNED 291
551
 
#define SQL_SQL 292
552
 
#define SQL_SQLERROR 293
553
 
#define SQL_SQLPRINT 294
554
 
#define SQL_SQLWARNING 295
555
 
#define SQL_START 296
556
 
#define SQL_STOP 297
557
 
#define SQL_STRUCT 298
558
 
#define SQL_UNSIGNED 299
559
 
#define SQL_VAR 300
560
 
#define SQL_WHENEVER 301
561
 
#define S_ADD 302
562
 
#define S_AND 303
563
 
#define S_ANYTHING 304
564
 
#define S_AUTO 305
565
 
#define S_CONST 306
566
 
#define S_DEC 307
567
 
#define S_DIV 308
568
 
#define S_DOTPOINT 309
569
 
#define S_EQUAL 310
570
 
#define S_EXTERN 311
571
 
#define S_INC 312
572
 
#define S_LSHIFT 313
573
 
#define S_MEMPOINT 314
574
 
#define S_MEMBER 315
575
 
#define S_MOD 316
576
 
#define S_MUL 317
577
 
#define S_NEQUAL 318
578
 
#define S_OR 319
579
 
#define S_REGISTER 320
580
 
#define S_RSHIFT 321
581
 
#define S_STATIC 322
582
 
#define S_SUB 323
583
 
#define S_VOLATILE 324
584
 
#define S_TYPEDEF 325
585
 
#define TYPECAST 326
586
 
#define CSTRING 327
587
 
#define CVARIABLE 328
588
 
#define CPP_LINE 329
589
 
#define IP 330
590
 
#define DOLCONST 331
591
 
#define ECONST 332
592
 
#define NCONST 333
593
 
#define UCONST 334
594
 
#define UIDENT 335
595
 
#define ABORT_P 336
596
 
#define ABSOLUTE_P 337
597
 
#define ACCESS 338
598
 
#define ACTION 339
599
 
#define ADD_P 340
600
 
#define ADMIN 341
601
 
#define AFTER 342
602
 
#define AGGREGATE 343
603
 
#define ALL 344
604
 
#define ALSO 345
605
 
#define ALTER 346
606
 
#define ALWAYS 347
607
 
#define ANALYSE 348
608
 
#define ANALYZE 349
609
 
#define AND 350
610
 
#define ANY 351
611
 
#define ARRAY 352
612
 
#define AS 353
613
 
#define ASC 354
614
 
#define ASSERTION 355
615
 
#define ASSIGNMENT 356
616
 
#define ASYMMETRIC 357
617
 
#define AT 358
618
 
#define AUTHORIZATION 359
619
 
#define BACKWARD 360
620
 
#define BEFORE 361
621
 
#define BEGIN_P 362
622
 
#define BETWEEN 363
623
 
#define BIGINT 364
624
 
#define BINARY 365
625
 
#define BIT 366
626
 
#define BOOLEAN_P 367
627
 
#define BOTH 368
628
 
#define BY 369
629
 
#define CACHE 370
630
 
#define CALLED 371
631
 
#define CASCADE 372
632
 
#define CASCADED 373
633
 
#define CASE 374
634
 
#define CAST 375
635
 
#define CATALOG_P 376
636
 
#define CHAIN 377
637
 
#define CHAR_P 378
638
 
#define CHARACTER 379
639
 
#define CHARACTERISTICS 380
640
 
#define CHECK 381
641
 
#define CHECKPOINT 382
642
 
#define CLASS 383
643
 
#define CLOSE 384
644
 
#define CLUSTER 385
645
 
#define COALESCE 386
646
 
#define COLLATE 387
647
 
#define COLUMN 388
648
 
#define COMMENT 389
649
 
#define COMMIT 390
650
 
#define COMMITTED 391
651
 
#define CONCURRENTLY 392
652
 
#define CONFIGURATION 393
653
 
#define CONNECTION 394
654
 
#define CONSTRAINT 395
655
 
#define CONSTRAINTS 396
656
 
#define CONTENT_P 397
657
 
#define CONTINUE_P 398
658
 
#define CONVERSION_P 399
659
 
#define COPY 400
660
 
#define COST 401
661
 
#define CREATE 402
662
 
#define CREATEDB 403
663
 
#define CREATEROLE 404
664
 
#define CREATEUSER 405
665
 
#define CROSS 406
666
 
#define CSV 407
667
 
#define CURRENT_P 408
668
 
#define CURRENT_CATALOG 409
669
 
#define CURRENT_DATE 410
670
 
#define CURRENT_ROLE 411
671
 
#define CURRENT_SCHEMA 412
672
 
#define CURRENT_TIME 413
673
 
#define CURRENT_TIMESTAMP 414
674
 
#define CURRENT_USER 415
675
 
#define CURSOR 416
676
 
#define CYCLE 417
677
 
#define DATA_P 418
678
 
#define DATABASE 419
679
 
#define DAY_P 420
680
 
#define DEALLOCATE 421
681
 
#define DEC 422
682
 
#define DECIMAL_P 423
683
 
#define DECLARE 424
684
 
#define DEFAULT 425
685
 
#define DEFAULTS 426
686
 
#define DEFERRABLE 427
687
 
#define DEFERRED 428
688
 
#define DEFINER 429
689
 
#define DELETE_P 430
690
 
#define DELIMITER 431
691
 
#define DELIMITERS 432
692
 
#define DESC 433
693
 
#define DICTIONARY 434
694
 
#define DISABLE_P 435
695
 
#define DISCARD 436
696
 
#define DISTINCT 437
697
 
#define DO 438
698
 
#define DOCUMENT_P 439
699
 
#define DOMAIN_P 440
700
 
#define DOUBLE_P 441
701
 
#define DROP 442
702
 
#define EACH 443
703
 
#define ELSE 444
704
 
#define ENABLE_P 445
705
 
#define ENCODING 446
706
 
#define ENCRYPTED 447
707
 
#define END_P 448
708
 
#define ENUM_P 449
709
 
#define ESCAPE 450
710
 
#define EXCEPT 451
711
 
#define EXCLUDING 452
712
 
#define EXCLUSIVE 453
713
 
#define EXECUTE 454
714
 
#define EXISTS 455
715
 
#define EXPLAIN 456
716
 
#define EXTERNAL 457
717
 
#define EXTRACT 458
718
 
#define FALSE_P 459
719
 
#define FAMILY 460
720
 
#define FETCH 461
721
 
#define FIRST_P 462
722
 
#define FLOAT_P 463
723
 
#define FOLLOWING 464
724
 
#define FOR 465
725
 
#define FORCE 466
726
 
#define FOREIGN 467
727
 
#define FORWARD 468
728
 
#define FREEZE 469
729
 
#define FROM 470
730
 
#define FULL 471
731
 
#define FUNCTION 472
732
 
#define GLOBAL 473
733
 
#define GRANT 474
734
 
#define GRANTED 475
735
 
#define GREATEST 476
736
 
#define GROUP_P 477
737
 
#define HANDLER 478
738
 
#define HAVING 479
739
 
#define HEADER_P 480
740
 
#define HOLD 481
741
 
#define HOUR_P 482
742
 
#define IDENTITY_P 483
743
 
#define IF_P 484
744
 
#define ILIKE 485
745
 
#define IMMEDIATE 486
746
 
#define IMMUTABLE 487
747
 
#define IMPLICIT_P 488
748
 
#define IN_P 489
749
 
#define INCLUDING 490
750
 
#define INCREMENT 491
751
 
#define INDEX 492
752
 
#define INDEXES 493
753
 
#define INHERIT 494
754
 
#define INHERITS 495
755
 
#define INITIALLY 496
756
 
#define INNER_P 497
757
 
#define INOUT 498
758
 
#define INPUT_P 499
759
 
#define INSENSITIVE 500
760
 
#define INSERT 501
761
 
#define INSTEAD 502
762
 
#define INT_P 503
763
 
#define INTEGER 504
764
 
#define INTERSECT 505
765
 
#define INTERVAL 506
766
 
#define INTO 507
767
 
#define INVOKER 508
768
 
#define IS 509
769
 
#define ISNULL 510
770
 
#define ISOLATION 511
771
 
#define JOIN 512
772
 
#define KEY 513
773
 
#define LANCOMPILER 514
774
 
#define LANGUAGE 515
775
 
#define LARGE_P 516
776
 
#define LAST_P 517
777
 
#define LC_COLLATE_P 518
778
 
#define LC_CTYPE_P 519
779
 
#define LEADING 520
780
 
#define LEAST 521
781
 
#define LEFT 522
782
 
#define LEVEL 523
783
 
#define LIKE 524
784
 
#define LIMIT 525
785
 
#define LISTEN 526
786
 
#define LOAD 527
787
 
#define LOCAL 528
788
 
#define LOCALTIME 529
789
 
#define LOCALTIMESTAMP 530
790
 
#define LOCATION 531
791
 
#define LOCK_P 532
792
 
#define LOGIN_P 533
793
 
#define MAPPING 534
794
 
#define MATCH 535
795
 
#define MAXVALUE 536
796
 
#define MINUTE_P 537
797
 
#define MINVALUE 538
798
 
#define MODE 539
799
 
#define MONTH_P 540
800
 
#define MOVE 541
801
 
#define NAME_P 542
802
 
#define NAMES 543
803
 
#define NATIONAL 544
804
 
#define NATURAL 545
805
 
#define NCHAR 546
806
 
#define NEW 547
807
 
#define NEXT 548
808
 
#define NO 549
809
 
#define NOCREATEDB 550
810
 
#define NOCREATEROLE 551
811
 
#define NOCREATEUSER 552
812
 
#define NOINHERIT 553
813
 
#define NOLOGIN_P 554
814
 
#define NONE 555
815
 
#define NOSUPERUSER 556
816
 
#define NOT 557
817
 
#define NOTHING 558
818
 
#define NOTIFY 559
819
 
#define NOTNULL 560
820
 
#define NOWAIT 561
821
 
#define NULL_P 562
822
 
#define NULLIF 563
823
 
#define NULLS_P 564
824
 
#define NUMERIC 565
825
 
#define OBJECT_P 566
826
 
#define OF 567
827
 
#define OFF 568
828
 
#define OFFSET 569
829
 
#define OIDS 570
830
 
#define OLD 571
831
 
#define ON 572
832
 
#define ONLY 573
833
 
#define OPERATOR 574
834
 
#define OPTION 575
835
 
#define OPTIONS 576
836
 
#define OR 577
837
 
#define ORDER 578
838
 
#define OUT_P 579
839
 
#define OUTER_P 580
840
 
#define OVER 581
841
 
#define OVERLAPS 582
842
 
#define OVERLAY 583
843
 
#define OWNED 584
844
 
#define OWNER 585
845
 
#define PARSER 586
846
 
#define PARTIAL 587
847
 
#define PARTITION 588
848
 
#define PASSWORD 589
849
 
#define PLACING 590
850
 
#define PLANS 591
851
 
#define POSITION 592
852
 
#define PRECEDING 593
853
 
#define PRECISION 594
854
 
#define PRESERVE 595
855
 
#define PREPARE 596
856
 
#define PREPARED 597
857
 
#define PRIMARY 598
858
 
#define PRIOR 599
859
 
#define PRIVILEGES 600
860
 
#define PROCEDURAL 601
861
 
#define PROCEDURE 602
862
 
#define QUOTE 603
863
 
#define RANGE 604
864
 
#define READ 605
865
 
#define REAL 606
866
 
#define REASSIGN 607
867
 
#define RECHECK 608
868
 
#define RECURSIVE 609
869
 
#define REFERENCES 610
870
 
#define REINDEX 611
871
 
#define RELATIVE_P 612
872
 
#define RELEASE 613
873
 
#define RENAME 614
874
 
#define REPEATABLE 615
875
 
#define REPLACE 616
876
 
#define REPLICA 617
877
 
#define RESET 618
878
 
#define RESTART 619
879
 
#define RESTRICT 620
880
 
#define RETURNING 621
881
 
#define RETURNS 622
882
 
#define REVOKE 623
883
 
#define RIGHT 624
884
 
#define ROLE 625
885
 
#define ROLLBACK 626
886
 
#define ROW 627
887
 
#define ROWS 628
888
 
#define RULE 629
889
 
#define SAVEPOINT 630
890
 
#define SCHEMA 631
891
 
#define SCROLL 632
892
 
#define SEARCH 633
893
 
#define SECOND_P 634
894
 
#define SECURITY 635
895
 
#define SELECT 636
896
 
#define SEQUENCE 637
897
 
#define SERIALIZABLE 638
898
 
#define SERVER 639
899
 
#define SESSION 640
900
 
#define SESSION_USER 641
901
 
#define SET 642
902
 
#define SETOF 643
903
 
#define SHARE 644
904
 
#define SHOW 645
905
 
#define SIMILAR 646
906
 
#define SIMPLE 647
907
 
#define SMALLINT 648
908
 
#define SOME 649
909
 
#define STABLE 650
910
 
#define STANDALONE_P 651
911
 
#define START 652
912
 
#define STATEMENT 653
913
 
#define STATISTICS 654
914
 
#define STDIN 655
915
 
#define STDOUT 656
916
 
#define STORAGE 657
917
 
#define STRICT_P 658
918
 
#define STRIP_P 659
919
 
#define SUBSTRING 660
920
 
#define SUPERUSER_P 661
921
 
#define SYMMETRIC 662
922
 
#define SYSID 663
923
 
#define SYSTEM_P 664
924
 
#define TABLE 665
925
 
#define TABLESPACE 666
926
 
#define TEMP 667
927
 
#define TEMPLATE 668
928
 
#define TEMPORARY 669
929
 
#define TEXT_P 670
930
 
#define THEN 671
931
 
#define TIME 672
932
 
#define TIMESTAMP 673
933
 
#define TO 674
934
 
#define TRAILING 675
935
 
#define TRANSACTION 676
936
 
#define TREAT 677
937
 
#define TRIGGER 678
938
 
#define TRIM 679
939
 
#define TRUE_P 680
940
 
#define TRUNCATE 681
941
 
#define TRUSTED 682
942
 
#define TYPE_P 683
943
 
#define UNBOUNDED 684
944
 
#define UNCOMMITTED 685
945
 
#define UNENCRYPTED 686
946
 
#define UNION 687
947
 
#define UNIQUE 688
948
 
#define UNKNOWN 689
949
 
#define UNLISTEN 690
950
 
#define UNTIL 691
951
 
#define UPDATE 692
952
 
#define USER 693
953
 
#define USING 694
954
 
#define VACUUM 695
955
 
#define VALID 696
956
 
#define VALIDATOR 697
957
 
#define VALUE_P 698
958
 
#define VALUES 699
959
 
#define VARCHAR 700
960
 
#define VARIADIC 701
961
 
#define VARYING 702
962
 
#define VERBOSE 703
963
 
#define VERSION_P 704
964
 
#define VIEW 705
965
 
#define VOLATILE 706
966
 
#define WHEN 707
967
 
#define WHERE 708
968
 
#define WHITESPACE_P 709
969
 
#define WINDOW 710
970
 
#define WITH 711
971
 
#define WITHOUT 712
972
 
#define WORK 713
973
 
#define WRAPPER 714
974
 
#define WRITE 715
975
 
#define XML_P 716
976
 
#define XMLATTRIBUTES 717
977
 
#define XMLCONCAT 718
978
 
#define XMLELEMENT 719
979
 
#define XMLFOREST 720
980
 
#define XMLPARSE 721
981
 
#define XMLPI 722
982
 
#define XMLROOT 723
983
 
#define XMLSERIALIZE 724
984
 
#define YEAR_P 725
985
 
#define YES_P 726
986
 
#define ZONE 727
987
 
#define NULLS_FIRST 728
988
 
#define NULLS_LAST 729
989
 
#define WITH_TIME 730
990
 
#define IDENT 731
991
 
#define FCONST 732
992
 
#define SCONST 733
993
 
#define BCONST 734
994
 
#define XCONST 735
995
 
#define Op 736
996
 
#define ICONST 737
997
 
#define PARAM 738
998
 
#define POSTFIXOP 739
999
 
#define UMINUS 740
1000
 
 
1001
 
 
1002
 
 
1003
 
 
1004
 
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
 
527
 
 
528
 
 
529
 
 
530
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 
531
typedef union YYSTYPE
 
532
{
 
533
 
 
534
/* Line 1676 of yacc.c  */
1005
535
#line 383 "preproc.y"
1006
 
typedef union YYSTYPE {
 
536
 
1007
537
        double  dval;
1008
538
        char    *str;
1009
539
        int     ival;
1016
546
        struct  fetch_desc      descriptor;
1017
547
        struct  su_symbol       struct_union;
1018
548
        struct  prep            prep;
 
549
 
 
550
 
 
551
 
 
552
/* Line 1676 of yacc.c  */
 
553
#line 554 "preproc.h"
1019
554
} YYSTYPE;
1020
 
/* Line 1204 of yacc.c.  */
1021
 
#line 1021 "preproc.h"
 
555
# define YYSTYPE_IS_TRIVIAL 1
1022
556
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
1023
557
# define YYSTYPE_IS_DECLARED 1
1024
 
# define YYSTYPE_IS_TRIVIAL 1
1025
558
#endif
1026
559
 
1027
560
extern YYSTYPE base_yylval;
1028
561
 
1029
 
#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
 
562
#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
1030
563
typedef struct YYLTYPE
1031
564
{
1032
565
  int first_line;
1041
574
 
1042
575
extern YYLTYPE base_yylloc;
1043
576
 
1044