Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

68 lines
1.6 KiB

//
//Requirements:
// GROUP BY
// HAVING
// ORDER BY
// ALL
// DISTINCT
// LIKE
// MAX (?)
// MIN (?)
//Notes on joins
//(1) Aliases are enforced once used for any given table
//(2) Alias can be used for some tables, but not others
//
//New style:
// select * from t1 cross join t2
// select * from t1 cross join t2 where t1.x = t2.x
// [Note:CROSS JOIN allows a where clause, other JOIN ops do not, but require ON]
//
// LEFT OUTER JOIN <on>
// RIGHT OUTER JOIN <on>
// FULL OUTER JOIN <on>
// JOIN <on>
// CROSS JOIN <where>
//
//
//
//<select [all|distinct] <select_list> from <> where <>
// [group by] [having] [order by]
//OUTPUT:
//(1) General complexity flags
// A. BOOLEAN: JOIN
// B. BOOLEAN: OLD JOIN
// C. BOOLEAN: NEW JOIN
// D. BOOLEAN: ON Clause
// F. BOOLEAN: SELF-JOIN OCCURS
// G: INT: NUMBER OF TABLES JOINED
// E. BOOLEAN: UNARY Query
// F. BOOLEAN: WBEM Refs/Assocs
//
// F. BOOLEAN: ALIASES
// D. BOOLEAN: WQL 1.0 provider compatible simple query
// F. BOOLEAN: WQL Temporal/Event extension
// E. BOOLEAN: ORDER BY
// F. BOOLEAN: GROUP BY
// G. BOOLEAN: HAVING
// H. SQL-89 COMPATIBLE
// I. SQL-92 COMPATIBLE
// F: DISTINCT
// G: EQUIJOIN
// H: THETA-JOIN <non equijoin>
//
// (2) Get number & list of classes/tables (NULL separated)
// (3) Get list of selected column references in the output
// (4) Get list of column names used in ON
// (5) Get list of column names used in WHERE
//(2) Select column list
//(3) Add *= and =* operators
//