diff options
Diffstat (limited to 'etc')
-rwxr-xr-x | etc/megapop.pl | 116 | ||||
-rw-r--r-- | etc/sql-reserved-words.txt | 103 |
2 files changed, 219 insertions, 0 deletions
diff --git a/etc/megapop.pl b/etc/megapop.pl new file mode 100755 index 0000000..b250bcd --- /dev/null +++ b/etc/megapop.pl @@ -0,0 +1,116 @@ +#!/usr/bin/perl -Tw +# +# $Id: megapop.pl,v 1.1 1999-04-19 10:32:44 ivan Exp $ +# +# this will break when megapop changes the URL or format of their listing page. +# that's stupid. perhaps they can provide a machine-readable listing? + +use strict; +use LWP::UserAgent; +use FS::UID qw(adminsuidsetup); +use FS::svc_acct_pop; + +my $url = "http://www.megapop.com/location.htm"; + +my $user = shift or die &usage; +adminsuidsetup($user); + +my %state2usps = &state2usps; +$state2usps{'WASHINGTON STATE'} = 'WA'; #megapop's on crack +$state2usps{'CANADA'} = 'CANADA'; #freeside's on crack + +my $ua = new LWP::UserAgent; +my $request = new HTTP::Request('GET', $url); +my $response = $ua->request($request); +die $response->error_as_HTML unless $response->is_success; +my $line; +my $usps = ''; +foreach $line ( split("\n", $response->content) ) { + if ( $line =~ /\W(\w[\w\s]*\w)\s+LOCATIONS/i ) { + $usps = $state2usps{uc($1)} + or warn "warning: unknown state $1\n"; + } elsif ( $line =~ /(\d{3})\-(\d{3})\-(\d{4})\s+(\w[\w\s]*\w)/ ) { + print "$1 $2 $3 $4 $usps\n"; + my $svc_acct_pop = new FS::svc_acct_pop ( { + 'city' => $4, + 'state' => $usps, + 'ac' => $1, + 'exch' => $2, + } ); + my $error = $svc_acct_pop->insert; + die $error if $error; + } +} + +sub usage { + die "Usage:\n $0 user\n"; +} + +sub state2usps{ ( + 'ALABAMA' => 'AL', + 'ALASKA' => 'AK', + 'AMERICAN SAMOA' => 'AS', + 'ARIZONA' => 'AZ', + 'ARKANSAS' => 'AR', + 'CALIFORNIA' => 'CA', + 'COLORADO' => 'CO', + 'CONNECTICUT' => 'CT', + 'DELAWARE' => 'DE', + 'DISTRICT OF COLUMBIA' => 'DC', + 'FEDERATED STATES OF MICRONESIA' => 'FM', + 'FLORIDA' => 'FL', + 'GEORGIA' => 'GA', + 'GUAM' => 'GU', + 'HAWAII' => 'HI', + 'IDAHO' => 'ID', + 'ILLINOIS' => 'IL', + 'INDIANA' => 'IN', + 'IOWA' => 'IA', + 'KANSAS' => 'KS', + 'KENTUCKY' => 'KY', + 'LOUISIANA' => 'LA', + 'MAINE' => 'ME', + 'MARSHALL ISLANDS' => 'MH', + 'MARYLAND' => 'MD', + 'MASSACHUSETTS' => 'MA', + 'MICHIGAN' => 'MI', + 'MINNESOTA' => 'MN', + 'MISSISSIPPI' => 'MS', + 'MISSOURI' => 'MO', + 'MONTANA' => 'MT', + 'NEBRASKA' => 'NE', + 'NEVADA' => 'NV', + 'NEW HAMPSHIRE' => 'NH', + 'NEW JERSEY' => 'NJ', + 'NEW MEXICO' => 'NM', + 'NEW YORK' => 'NY', + 'NORTH CAROLINA' => 'NC', + 'NORTH DAKOTA' => 'ND', + 'NORTHERN MARIANA ISLANDS' => 'MP', + 'OHIO' => 'OH', + 'OKLAHOMA' => 'OK', + 'OREGON' => 'OR', + 'PALAU' => 'PW', + 'PENNSYLVANIA' => 'PA', + 'PUERTO RICO' => 'PR', + 'RHODE ISLAND' => 'RI', + 'SOUTH CAROLINA' => 'SC', + 'SOUTH DAKOTA' => 'SD', + 'TENNESSEE' => 'TN', + 'TEXAS' => 'TX', + 'UTAH' => 'UT', + 'VERMONT' => 'VT', + 'VIRGIN ISLANDS' => 'VI', + 'VIRGINIA' => 'VA', + 'WASHINGTON' => 'WA', + 'WEST VIRGINIA' => 'WV', + 'WISCONSIN' => 'WI', + 'WYOMING' => 'WY', + 'ARMED FORCES AFRICA' => 'AE', + 'ARMED FORCES AMERICAS' => 'AA', + 'ARMED FORCES CANADA' => 'AE', + 'ARMED FORCES EUROPE' => 'AE', + 'ARMED FORCES MIDDLE EAST' => 'AE', + 'ARMED FORCES PACIFIC' => 'AP', +) } + diff --git a/etc/sql-reserved-words.txt b/etc/sql-reserved-words.txt new file mode 100644 index 0000000..dc507ce --- /dev/null +++ b/etc/sql-reserved-words.txt @@ -0,0 +1,103 @@ +From http://epoch.cs.berkeley.edu:8000/sequoia/dba/montage/FAQ/SQL.html + by Jean Anderson (jta@postgres.berkeley.edu) + +What are the SQL reserved words? + +I grep'd the following list out of the sql docs available via anonymous ftp to speckle.ncsl.nist.gov:/isowg3. +SQL3 words are not set in stone, but you'd do well to avoid them. + + From sql1992.txt: + + AFTER, ALIAS, ASYNC, BEFORE, BOOLEAN, BREADTH, + COMPLETION, CALL, CYCLE, DATA, DEPTH, DICTIONARY, EACH, ELSEIF, + EQUALS, GENERAL, IF, IGNORE, LEAVE, LESS, LIMIT, LOOP, MODIFY, + NEW, NONE, OBJECT, OFF, OID, OLD, OPERATION, OPERATORS, OTHERS, + PARAMETERS, PENDANT, PREORDER, PRIVATE, PROTECTED, RECURSIVE, REF, + REFERENCING, REPLACE, RESIGNAL, RETURN, RETURNS, ROLE, ROUTINE, + ROW, SAVEPOINT, SEARCH, SENSITIVE, SEQUENCE, SIGNAL, SIMILAR, + SQLEXCEPTION, SQLWARNING, STRUCTURE, TEST, THERE, TRIGGER, TYPE, + UNDER, VARIABLE, VIRTUAL, VISIBLE, WAIT, WHILE, WITHOUT + + From sql1992.txt (Annex E): + + ABSOLUTE, ACTION, ADD, ALLOCATE, ALTER, ARE, ASSERTION, AT, BETWEEN, + BIT, BIT + +What are the SQL reserved words? + +I grep'd the following list out of the sql docs available via anonymous ftp to speckle.ncsl.nist.gov:/isowg3. +SQL3 words are not set in stone, but you'd do well to avoid them. + + From sql1992.txt: + + AFTER, ALIAS, ASYNC, BEFORE, BOOLEAN, BREADTH, + COMPLETION, CALL, CYCLE, DATA, DEPTH, DICTIONARY, EACH, ELSEIF, + EQUALS, GENERAL, IF, IGNORE, LEAVE, LESS, LIMIT, LOOP, MODIFY, + NEW, NONE, OBJECT, OFF, OID, OLD, OPERATION, OPERATORS, OTHERS, + PARAMETERS, PENDANT, PREORDER, PRIVATE, PROTECTED, RECURSIVE, REF, + REFERENCING, REPLACE, RESIGNAL, RETURN, RETURNS, ROLE, ROUTINE, + ROW, SAVEPOINT, SEARCH, SENSITIVE, SEQUENCE, SIGNAL, SIMILAR, + SQLEXCEPTION, SQLWARNING, STRUCTURE, TEST, THERE, TRIGGER, TYPE, + UNDER, VARIABLE, VIRTUAL, VISIBLE, WAIT, WHILE, WITHOUT + + From sql1992.txt (Annex E): + + ABSOLUTE, ACTION, ADD, ALLOCATE, ALTER, ARE, ASSERTION, AT, BETWEEN, + BIT, BIT + +What are the SQL reserved words? + +I grep'd the following list out of the sql docs available via anonymous ftp to speckle.ncsl.nist.gov:/isowg3. +SQL3 words are not set in stone, but you'd do well to avoid them. + + From sql1992.txt: + + AFTER, ALIAS, ASYNC, BEFORE, BOOLEAN, BREADTH, + COMPLETION, CALL, CYCLE, DATA, DEPTH, DICTIONARY, EACH, ELSEIF, + EQUALS, GENERAL, IF, IGNORE, LEAVE, LESS, LIMIT, LOOP, MODIFY, + NEW, NONE, OBJECT, OFF, OID, OLD, OPERATION, OPERATORS, OTHERS, + PARAMETERS, PENDANT, PREORDER, PRIVATE, PROTECTED, RECURSIVE, REF, + REFERENCING, REPLACE, RESIGNAL, RETURN, RETURNS, ROLE, ROUTINE, + ROW, SAVEPOINT, SEARCH, SENSITIVE, SEQUENCE, SIGNAL, SIMILAR, + SQLEXCEPTION, SQLWARNING, STRUCTURE, TEST, THERE, TRIGGER, TYPE, + UNDER, VARIABLE, VIRTUAL, VISIBLE, WAIT, WHILE, WITHOUT + + From sql1992.txt (Annex E): + + ABSOLUTE, ACTION, ADD, ALLOCATE, ALTER, ARE, ASSERTION, AT, BETWEEN, + BIT, BIT_LENGTH, BOTH, CASCADE, CASCADED, CASE, CAST, CATALOG, + CHAR_LENGTH, CHARACTER_LENGTH, COALESCE, COLLATE, COLLATION, COLUMN, + CONNECT, CONNECTION, CONSTRAINT, CONSTRAINTS, CONVERT, CORRESPONDING, + CROSS, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER, + DATE, DAY, DEALLOCATE, DEFERRABLE, DEFERRED, DESCRIBE, DESCRIPTOR, + DIAGNOSTICS, DISCONNECT, DOMAIN, DROP, ELSE, END-EXEC, EXCEPT, + EXCEPTION, EXECUTE, EXTERNAL, EXTRACT, FALSE, FIRST, FULL, GET, + GLOBAL, HOUR, IDENTITY, IMMEDIATE, INITIALLY, INNER, INPUT, + INSENSITIVE, INTERSECT, INTERVAL, ISOLATION, JOIN, LAST, LEADING, + LEFT, LEVEL, LOCAL, LOWER, MATCH, MINUTE, MONTH, NAMES, NATIONAL, + NATURAL, NCHAR, NEXT, NO, NULLIF, OCTET_LENGTH, ONLY, OUTER, OUTPUT, + OVERLAPS, PAD, PARTIAL, POSITION, PREPARE, PRESERVE, PRIOR, READ, + RELATIVE, RESTRICT, REVOKE, RIGHT, ROWS, SCROLL, SECOND, SESSION, + SESSION_USER, SIZE, SPACE, SQLSTATE, SUBSTRING, SYSTEM_USER, + TEMPORARY, THEN, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE, + TRAILING, TRANSACTION, TRANSLATE, TRANSLATION, TRIM, TRUE, UNKNOWN, + UPPER, USAGE, USING, VALUE, VARCHAR, VARYING, WHEN, WRITE, YEAR, ZONE + + From sql3part2.txt (Annex E) + + ACTION, ACTOR, AFTER, ALIAS, ASYNC, ATTRIBUTES, BEFORE, BOOLEAN, + BREADTH, COMPLETION, CURRENT_PATH, CYCLE, DATA, DEPTH, DESTROY, + DICTIONARY, EACH, ELEMENT, ELSEIF, EQUALS, FACTOR, GENERAL, HOLD, + IGNORE, INSTEAD, LESS, LIMIT, LIST, MODIFY, NEW, NEW_TABLE, NO, + NONE, OFF, OID, OLD, OLD_TABLE, OPERATION, OPERATOR, OPERATORS, + PARAMETERS, PATH, PENDANT, POSTFIX, PREFIX, PREORDER, PRIVATE, + PROTECTED, RECURSIVE, REFERENCING, REPLACE, ROLE, ROUTINE, ROW, + SAVEPOINT, SEARCH, SENSITIVE, SEQUENCE, SESSION, SIMILAR, SPACE, + SQLEXCEPTION, SQLWARNING, START, STATE, STRUCTURE, SYMBOL, TERM, + TEST, THERE, TRIGGER, TYPE, UNDER, VARIABLE, VIRTUAL, VISIBLE, + WAIT, WITHOUT + + sql3part4.txt (ANNEX E): + + CALL, DO, ELSEIF, EXCEPTION, IF, LEAVE, LOOP, OTHERS, RESIGNAL, + RETURN, RETURNS, SIGNAL, TUPLE, WHILE |