78 lines
3.0 KiB
HTML
78 lines
3.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Autocomplete Test</title>
|
|
<script>
|
|
function testColumnAutocomplete() {
|
|
// Teste die verschiedenen Funktionen
|
|
console.log('Testing extractTableNameFromQuery...');
|
|
|
|
// Test-Queries
|
|
const testQueries = [
|
|
'SELECT * FROM AUTH_CONFIG',
|
|
'SELECT NAME FROM AUTH_CONFIG WHERE',
|
|
'select id, name from AUTH_CONFIG',
|
|
'SELECT COUNT(*) FROM AUTH_CONFIG',
|
|
'SELECT * FROM AUTH_CONFIG ORDER BY'
|
|
];
|
|
|
|
testQueries.forEach(query => {
|
|
console.log(`Query: "${query}"`);
|
|
|
|
// Simuliere extractTableNameFromQuery
|
|
const upperText = query.toUpperCase();
|
|
const patterns = [
|
|
/\bFROM\s+([A-Z_][A-Z0-9_]*)/,
|
|
/\bFROM\s+([A-Z_][A-Z0-9_]*)\s+[A-Z_]/,
|
|
/\bFROM\s+([A-Z_][A-Z0-9_]*)\s*,/,
|
|
/\bFROM\s+([A-Z_][A-Z0-9_]*)\s*$/,
|
|
/\bFROM\s+([A-Z_][A-Z0-9_]*)\s+WHERE/,
|
|
/\bFROM\s+([A-Z_][A-Z0-9_]*)\s+ORDER/,
|
|
/\bFROM\s+([A-Z_][A-Z0-9_]*)\s+GROUP/
|
|
];
|
|
|
|
let found = false;
|
|
for (const pattern of patterns) {
|
|
const match = upperText.match(pattern);
|
|
if (match && match[1]) {
|
|
console.log(` Found table: ${match[1]} with pattern: ${pattern}`);
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
console.log(' No table found');
|
|
}
|
|
|
|
// Teste shouldShowColumnAutocomplete
|
|
const textBeforeCursor = query.toUpperCase();
|
|
const hasFromClause = /\bFROM\s+[A-Z_][A-Z0-9_]*/.test(textBeforeCursor);
|
|
console.log(` Has FROM clause: ${hasFromClause}`);
|
|
|
|
const selectPatterns = [
|
|
/\bSELECT\s*$/,
|
|
/\bSELECT\s+((?:[A-Z_0-9*]+(?:\s*,\s*)?)*)\s*([A-Z_0-9]*)$/,
|
|
/\bSELECT\s+[^,]+(?:\s*,\s*[^,]*)*\s*,\s*([A-Z_0-9]*)$/
|
|
];
|
|
|
|
selectPatterns.forEach((pattern, index) => {
|
|
if (pattern.test(textBeforeCursor)) {
|
|
console.log(` SELECT pattern ${index} matched`);
|
|
}
|
|
});
|
|
|
|
console.log('---');
|
|
});
|
|
}
|
|
|
|
// Teste beim Laden der Seite
|
|
window.onload = testColumnAutocomplete;
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<h1>Autocomplete Debug Test</h1>
|
|
<p>Öffne die Browser-Konsole um die Test-Ergebnisse zu sehen.</p>
|
|
<p>Teste dann in der echten Anwendung: "SELECT " gefolgt von "FROM AUTH_CONFIG"</p>
|
|
</body>
|
|
</html> |